![](/img/trans.png)
[英]How to change Unix Line feed to Windows Line Feed with C#
[英]How to read ComosDB change feed of unknown type in C#?
我有一個 CosmosDB 容器,我想將更改源掛鈎到其中。 這個容器內部存儲了一些不同的數據結構,通常會通過數據類型標簽進行查詢。 我想根據更新的對象類型以不同的方式處理更改提要。 有沒有辦法將查詢附加到更改提要上,或者我應該嘗試將返回數據類型設置為字典還是動態?
我不知道更改提要處理器庫中有任何部分處理或查詢。
但是你可以通過路過一家做這樣JObject
到ChangesHandler :
var changesHandler = new Container.ChangesHandler<JObject>(async (IReadOnlyCollection<JObject> collection, CancellationToken token) =>
{
/// First deserialize just to get the type of entity/class
var typedObject = JsonConvert.DeserializeObject<TypedObject>(doc.ToString());
if (typedObject.DataType == "yourdatatypetohandle1")
{
/// Do sth. with this item
var entity1 = JsonConvert.DeserializeObject<EntityToHandle1>();
}
if (typedObject.DataType == "yourdatatypetohandle2")
{
/// Do sth. with this item
var entity2 = JsonConvert.DeserializeObject<EntityToHandle2>();
}
}
使用某種模型實體/類:
public class TypedObject
{
public virtual string DataType { get; set; }
}
public class EntityToHandle1 : TypedObject
{
public override string DataType { get; set; } = "yourdatatypetohandle1";
}
public class EntityToHandle1 : TypedObject
{
public override string DataType { get; set; } = "yourdatatypetohandle2";
}
請注意,此解決方案從性能角度來看並不完美,因為 2x 反序列化不是最佳選擇。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.