トランセンダーでこの質問に出くわしました:
逆シリアル化中にフィールドの値が必要ない場合、フィールドに何を適用する必要がありますか?
Me = [NonSerialized]、ANSWER = [OptionalField]
私の腸の反応は NonSerialized でしたが、Transcender は私が間違っていると言います。[Nonseralized] 属性に関する限り、何に注意すればよいかはよくわかりますが、それでもこれを解決してほしいと思います。
私が知る限り、前者は同じアセンブリの新しいバージョンと古いバージョンの間のバージョン管理の競合と関係があります。後者は、フィールド FULLSTOP をシリアル化しないことに関心があります。この2つを際立たせる何かが他にありますか?MSDN は、XMLIgnoreAttribute を使用する XMLFormatter を使用して BinaryFormatters と SoapFormatter で使用されるため、これについてあまり言及していません。
2 番目の質問は、2 つの属性のいずれかを組み合わせて一致させることはできますか? 私はまだそれらを使用していません。
これを投げるだけですが、私の答えは [OnDeserialized] と IdeserilizationCallback インターフェイスが実装されている方法と関係がありますか?
アップデート:
オプションのフィールド属性はデータメンバーが保持する値をシリアル化しないことを知っていますが、NonSerialized はデータメンバーまたはその値をシリアル化しません。