[英]How can I deserialize an object from an XML string?
我试图使用xmlSerializer.Deserialize()从XML字符串反序列化对象,但是返回的对象始终为空(不为null,但所有属性均为null或0)。 我无法弄清楚我在做什么错,但是我没有收到任何错误或异常。
string xml = "***my xml is here***";
XmlSerializer ser = new XmlSerializer(typeof(Order));
StringReader stringReader = new StringReader(xml);
XmlTextReader xmlReader = new XmlTextReader(stringReader);
Order order = (Order)ser.Deserialize(xmlReader);
xmlReader.Close();
stringReader.Close();
Order.cs的源是使用xsd.exe工具从XSD生成的。
order.cs的来源: http ://www.nickgilbert.com/etc/1/Order.txt
示例订单XML: http : //www.nickgilbert.com/etc/1/example-order.xml
您的示例XML文件(example-order.xml)使用命名空间http://tempuri.org/OrderSchema.xsd
但是XSD(order.cs)生成的代码定义了命名空间http://x-rm.com/wrightcottrell/cataloguecd/
中的所有元素。 http://x-rm.com/wrightcottrell/cataloguecd/
。
您需要将这些名称空间匹配起来,才能使序列化正常工作。
你得到一个对象返回所有的事实告诉我,对象是公众,具有公共参数的构造函数(否则一个异常会被抛出)。 因此,最有可能失败的原因之一是:
get
和public set
公共属性,或者是public(非只读)字段
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.