如果我尝试序列以下ClassToSerialize类的对象与System.Runtime.Serialization.Json.DataContractJsonSerializerSystem.Runtime.Serialization.Json.DataContractJsonSerializer.WriteObject忽略非序列化的属性,而序列化
[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());
}
返回字符串仍包含IsMf属性及其值。 NOnSerialized属性被忽略。有人可以请建议什么属性使用DataContractJsonSerializer时,以不序列化的一些属性
我提高了Darin的答复,因为它更准确,更完整,并且因为误导而降低了这个答案。只有标有[DataMember]的成员才会被序列化,其他成员则不会。不需要您注意到的[NonSerialized]被忽略。 – 2015-06-02 22:20:39