gpt4 book ai didi

c# - 如何在 realm-dotnet 中存储 System.Collections.Generic.Dictionary

转载 作者:行者123 更新时间:2023-11-30 21:35:32 24 4
gpt4 key购买 nike

我正在尝试将 Realm .NET 集成到我的 uwp 项目中,我想知道是否有任何方法可以在 realm-dotnet 基础中存储 System.Collections.Generic.Dictionary。我试过这个:

 public class Training : RealmObject
{
public int Id { get; set; }
public int Id_document { get; set; }
public IDictionary<string, string> Names { get; set;}
}

但是我收到了这个错误:

Fody/RealmWeaver 错误:Training.Name 是“System.Collections.Generic.IDictionary`2”,尚不受支持。

感谢提前,

最佳答案

基本要求

没有办法直接存储 System.Collections.Generic.Dictionary进入境界。
在 Realm 官方网站上,您可以找到您正在搜索的所有信息,例如 here您可以找到支持的数据类型的完整列表(也包括集合)。

为了将数据保存为类似 Dictionary 的结构,您可能希望使用继承自 RealmObject 的自定义类有两个IList<T>属性,例如:

public class RealmDictionary : RealmObject {
public IList<T> Keys { get; }
public IList<T> Values { get; }
}

在你的类中你想要存储Dictionary的地方, 使用上面的实例 RealmDictionary类:

...
public RealmDictionary Names { get; set; }
...

更新

(使用 NewtonsoftJson )
如果您必须将数据序列化为 Json 字符串,您可以将基类设置为:

...
[JsonIgnore]
public RealmDictionary RealmNames { get; set; }
public Dictionary<string,string> Names {
get {
return RealmNames.AsDictionary
}
}
...

然后加入 RealmDictionary class 一个属性/方法,它构造一个带有值的字典,类似的东西..

public Dictionary<string,string> AsDictionary {
get {
Dictionary<string,string> temp = new Dictionary<>();
for(int i = 0; i < Keys.Count; i++){
temp.Add(Keys[i], Values[i]);
}
return temp;
}
}

关于c# - 如何在 realm-dotnet 中存储 System.Collections.Generic.Dictionary,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49150084/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com