Ravendb 960不尊重JsonIgnore,其属性为Dictionary <string,object =“”> </string,>

时间:2012-10-20 20:10:15

标签: json.net ravendb

当属性有数据时,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文档有数据。我错过了什么吗?

1 个答案:

答案 0 :(得分:2)

如果您使用的是1.2(不稳定)版本中的任何一个,则需要使用JsonIgnoreAttributeRaven.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客户的好运。不过,我认为更好的建议是重组以避免需要它。