当属性有数据时,JsonIgnore不起作用吗?我有以下课程:
public class SomeObject
{
public string Name { get; set; }
public DateTime Created { get; set; }
public List<string> ErrorList { get; set; }
[JsonIgnore]
public Dictionary<string, object> Parameters { get; set; }
public SomeObject()
{
this.ErrorList = new List<string>();
this.Parameters = new Dictionary<string, object>();
}
}
我的期望是JsonIgnore会从De- / Serialization中排除属性。我的RavenDB文档有数据。我错过了什么吗?
答案 0 :(得分:2)
如果您使用的是1.2(不稳定)版本中的任何一个,则需要使用JsonIgnoreAttribute
中Raven.Imports.Newtonsoft.Json
的副本。所有Json.Net都已内化。
更好的方法是不要通过属性直接公开参数字典,因为您不希望它被序列化。也许像下面这样的模式就足够了:
private readonly Dictionary<string, object> _parameters = new Dictionary<string, object>();
public Dictionary<string, object> GetParameters()
{
return _parameters;
}
就个人而言,我尽量不将任何外部依赖项带入我的域对象,所以我还是想避免像[JsonIgnore]
这样的事情。
修改强>
抱歉,我刚刚在你的标题中看到了960版本。您可能遇到了另一个问题,即960依赖于Json.Net 4.0.8。您可以在http://nuget.org/packages/RavenDB.Client/1.0.972处获得972客户的好运。不过,我认为更好的建议是重组以避免需要它。