我正在通过网络接收Xml字符串,我希望能够将其内容放入对象中。当我将班级的二传手保持公开状态时,它完全可以正常工作。但是,我希望能够将它们设为私有,在这种情况下,我会收到以下错误:
System.InvalidOperationException:'无法反序列化类型'MyApp.Random',因为它包含没有公共设置程序的属性'data'。
我在互联网上看过一遍,还没有找到解决方法。
我的课很简单,就像这样:
public class Random
{
public string data{ get; private set; }
public string abc{ get; private set; }
public string defg{ get; private set; }
}
这就是我要反序列化的方式:
var serializer = new XmlSerializer(typeof(Random));
result = (Random)serializer.Deserialize(new StringReader(xmlString));
答案 0 :(得分:0)
解决了。我只是使用了DataContractSerializer而不是XmlSerializer,它就像一个魅力。解决方法如下:
var ser = new DataContractSerializer(typeof(Random));
Random result = (Random)ser.ReadObject(new MemoryStream(xmlString));