我正在反序列化这个json字符串:
[{"id":"1"},{"id":"2"},{"id":"3"}]
表示项目的类是:
[DataContract]
public class MyClass
{
public MyClass() {
this._dtcreate = new DateTime();
}
private int _id;
[DataMember(Name = "id")]
public int Id {get;set;}
private DateTime _dtcreate;
}
请注意,在MyClass的默认构造函数中,我为“_dtcreate”设置了默认值。
所以,我正在使用此代码将json反序列化为T:
数组 public static T[] DeserializeArray<T>(string json)
{
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T[]));
MemoryStream ms = new MemoryStream(Encoding.Unicode.GetBytes(json));
T[] gType = (T[])ser.ReadObject(ms);
return gType;
}
当我反序列化我在反序列化数组中找不到的json字符串时,评估了属性“_dtcreate”。
我认为DataContractJsonSerializer不使用MyClass的默认构造函数。
我可以使用
吗?T obj = Activator.CreateInstance<T>();
为属于数组“gType”的所有对象创建一个实例,以确保我的列表的所有对象都是使用我的T类的dafault构造函数创建的?
非常感谢你!