如何反序列化的XML字符串成有私家制定者属性的对象?

问题描述 投票:0回答:1

我通过网络接收一个XML字符串,我希望能够把一个对象中它的内容。当我把这个类的setter方法为public,它工作完全正常。不过,我希望能够保持他们私人的,在这种情况下,我得到以下错误:

System.InvalidOperationException:“无法反序列化类型‘MyApp.Random’,因为它包含了属性‘数据’它没有公开制定者。”

我期待所有在互联网上,还没有找到一个解决方案。

我的课很简单,就像这样:

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));
c# xml xml-serialization
1个回答
0
投票

修复。我只是用DataContractSerializer的,而不是XmlSerializer的和它的工作就像一个魅力。这里是解决方案:

var ser = new DataContractSerializer(typeof(Random));
Random result = (Random)ser.ReadObject(new MemoryStream(xmlString));
© www.soinside.com 2019 - 2024. All rights reserved.