首先,我有一个 Database 程序集,里面有一些数据类的定义,并在这个程序集里面定义了一个 GetData() 静态方法,方法内利用 DataContractJsonSerializer 类,对应某些数据类进行反序列化。
然后,我在另一个程序集里面调用 GetData() 方法,想得到反序列化后的结果。在 Debug 版本下这个方法正常工作,但是在 Release 版本下会抛出 InvalidDataContractException 异常!
细节方面,数据类和 GetData() 方法所在的程序集是一个 Windows 15063 以上的 UWP 类库,调用它们的程序集是一个相同版本的 UWP 应用。我的数据类全部应用了 DataContract 和 DataMember 属性,这些是不用担心的,因为在 Debug 版本下可以正常工作……
有人知道这是什么情况吗?
DataContractJsonSerializer ds = new DataContractJsonSerializer(Type.GetType(className));
using (MemoryStream ms = new MemoryStream(bytes))
{
return ds.ReadObject(ms);
}