2

JavaScriptSerializer[ScriptIgnore]にタグを無視させる必要があります。カスタムJavaScriptConverterでこれを行うことができると思います。しかし、よくわかりません。私がする必要があるのは属性を無視することだけであり、残りは基本定義で行うことができます。あなたはここのコードをJavaScriptSerializer見ることができます。

この例のようなカスタムコンバーターを実装すると、複雑なカスタムオブジェクトグラフが適切にシリアル化されなくなるのではないかと心配しています。

JavaScriptSerializer用のMicrosoftのコードを振り返ると252-253、コードは次のようになります。

// Ignore all fields marked as [ScriptIgnore]
if (fieldInfo.IsDefined(typeof(ScriptIgnoreAttribute), true /*inherits*/)) 
 continue;

私が本当にバイパスする必要があるのはこの部分だけです。そのコード行をコメントアウトする必要があります。残念ながら、それは実際には不可能なので、プロセス全体のその一部を無視できるようにするための何らかの方法が必要です。

[ScriptIgnore]そのコード行を無視するにはどうすればよいですか、または属性を無視しないカスタム実装を提供するにはどうすればよいですか?

4

1 に答える 1

1

最終的に、JavaScriptSerializerクラスを模倣し、模倣されたクラス内でカスタマイズを提供する必要がありました。私がそれをすることを提案するか、それが非常に読みやすいかどうかはわかりません。一方、それは機能し、私はそれが大好きです。

于 2012-10-10T00:26:19.560 に答える