【发布时间】:2015-10-01 16:36:52
【问题描述】:
我正在使用 DataContractJsonSerializer(我对这个特定项目的唯一选择)来序列化一个与此类似的类,其中包括 [IgnoreDataMember] 属性:
public class TestClass
{
public int Test1 { get; set; }
public int Test2 { get; set; }
[IgnoreDataMember]
public int Test3 { get; set; }
}
我的序列化代码直接取自 MS 的示例页面:
TestClass MyTest = new TestClass();
MyTest.Test1 = 1;
MyTest.Test2 = 2;
MyTest.Test3 = 3;
MemoryStream stream1 = new MemoryStream();
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(TestClass));
ser.WriteObject(stream1, MyTest);
stream1.Position = 0;
StreamReader sr = new StreamReader(stream1);
string sContent = sr.ReadToEnd();
但我得到的输出总是包含Test3 属性:
{"Test1":1,"Test2":2,"Test3":3}
如果我这样定义类:
[DataContract]
public class TestClass
{
[DataMember]
public int Test1 { get; set; }
[DataMember]
public int Test2 { get; set; }
public int Test3 { get; set; }
}
我得到这样的正确输出:
{"Test1":1,"Test2":2}
我真正想要序列化的类有几十个属性,我只想忽略其中的一小部分,所以我更愿意使用[IgnoreDataMember] 而不是[DataContaract] 和[DataMember]。
我使用[IgnoreDataMember] 的方式有问题吗?
【问题讨论】:
标签: json serialization