0

プロパティにデータがある場合、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 ドキュメントにはデータがあります。何か不足していますか?

4

1 に答える 1

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 クライアントでうまくいくかもしれません。それでも、それをまったく必要としないように再構築することをお勧めします。

于 2012-10-21T04:53:07.563 に答える