2011-07-14 14 views
4

JSON.NETはIgnoreDataMember属性をサポートしていますか、代わりにJsonIgnoreを使用する必要がありますか?これは将来のサポートになるでしょうか?JSON.NET - IgnoreDataMemberの読み取り専用プロパティとサポート

さらに、JSON.NETが取得するプロパティをシリアル化していることがわかりました。これは意図した動作ですか?シリアライザレベルでスイッチを切ることができるのでしょうか?

答えて

9
自分の質問に答える

が、それは他の人に役立つかもしれないと思った...

私たちは、カスタムIContractResolverを使用して、これを実装することになりました。私たちはの機能を欲しがるので、それからCreatePropertyを微調整して、私たちが実際には連れていかないものを無視するようにします。例えば。

internal class IgnoreDataMemberContractResolver : DefaultContractResolver 
    { 
     protected override JsonProperty CreateProperty(MemberInfo member, MemberSerialization memberSerialization) 
     { 
      JsonProperty property = base.CreateProperty(member, memberSerialization); 
      property.Ignored |= member.GetCustomAttributes(typeof(IgnoreDataMemberAttribute), true).Length > 0; 
      return property; 
     } 
    } 
関連する問題