ich auf diese Frage auf transcender kam:Was ist der Unterschied zwischen dem [OptionalField] und [NonSerialized]
Was sollten Sie auf ein Feld anwenden, wenn ihr Wert nicht während der Deserialisierung wird benötigt?
Me = [NonSerialized] ANTWORT = [OptionalField]
Mein Bauch Reaktion war NonSerialised aber Transcender sagt, ich bin falsch. Ich habe eine gute Idee, worauf man achten sollte, wenn es um das Attribut [Nonseralized] geht, aber ich würde es trotzdem gerne klären.
Soweit ich feststellen kann, hat der ehemalige eine Beziehung mit Versionskonflikten zwischen neueren und älteren Versionen der gleichen Baugruppe. Letzteres beschäftigt sich mehr damit, ein Feld FULLSTOP nicht zu serialisieren. Gibt es noch etwas, das diese beiden auseinander bringen könnte? MSDN sagt nicht wirklich viel darüber, da beide in den BinaryFormatters und SoapFormatter mit dem XMLFormatter mit dem XMLIgnoreAttribute verwendet werden.
Meine zweite Frage ist, können Sie eines der beiden Attribute mischen und abgleichen? Ich muss sie noch benutzen.
Ich werfe nur dieses hier raus, aber hat meine Antwort etwas damit zu tun, wie [OnDeserialized] und die IdeerilizationCallback-Schnittstelle implementiert ist?
UPDATE:
Ich weiß, dass optionales Feld Attribut den Wert von einem Datenelement gehalten nicht serialisiert aber NonSerialized wird das Datenelement oder seinen Wert nicht einmal serialise.
Nur der Vollständigkeit halber - für alles, was mit Speicher (d. H. Wo Versionierung ein Problem wird), ist "BinaryFormatter" möglicherweise keine gute Wahl.Ich sehe * viele * Leute mit Problemen, wenn sie diesen Weg gehen. –
Danke Marc, ich bin von diesem Problem, aber ich muss nur ein gutes Verständnis dieser beiden Attribute bekommen, soweit es die Prüfung 70-536 betrifft. – IbrarMumtaz