Serialisierung Wenn ich versuche, mit System.Runtime.Serialization.Json.DataContractJsonSerializerSystem.Runtime.Serialization.Json.DataContractJsonSerializer.WriteObject ignoriert NonSerialized Attribut während
[DataContract,Serializable]
public class ClassToSerialize
{
[NonSerialized] private bool _mf;
public bool IsMf
{
get { return _mf};
set{ _mf = value;}
}
[DataMember]
public char PrimaryExc { get; set; }
}
public class TestClass
{
ClassToSerialize obj = new ClassToSerialize{PrimaryExchange = 'a', NoResults = true};
var serializer = new System.Runtime.Serialization.Json.DataContractJsonSerializer(ClassToSerialize);
var ms = new MemoryStream();
serializer.WriteObject(ms, obj);
return Encoding.UTF8.GetString(ms.ToArray());
}
Die Rückkehr ein Objekt der folgenden ClassToSerialize Klasse zu serialisiert Die Zeichenfolge enthält weiterhin die IsMf-Eigenschaft und ihren Wert. Das NOnSerialized-Attribut wird ignoriert. Kann jemand bitte vorschlagen, was zu verwenden Attribut, wenn DataContractJsonSerializer verwendet, um nicht einige Eigenschaften zu serialisiert
Ich habe die Antwort von Darin hochgestuft, weil sie genauer und vollständiger ist und diese nicht datiert, weil sie irreführend ist. Nur Mitglieder, die mit [DataMember] markiert sind, werden serialisiert, die anderen nicht. Keine Notwendigkeit für [NonSerialized], das, wie Sie bemerkt haben, ignoriert wird. –