我有以下xml:
<?xml version="1.0" encoding="UTF-8"?>
<connection_state>conn_state</connection_state>
在msdn之后,我必须将它描述为使用XmlSerializer进行正确反序列化的类型。因此,类名指向第一个标记及其字段子标记。 例如:
public class connection_state
{
public string state;
}
将转换为以下xml:
<?xml version="1.0" encoding="UTF-8"?>
<connection_state>
<state>conn_state</state>
</connection_state>
但我收到的xml只有一个标签。我们不能创建一个具有类名称的字段,如:
public class connection_state
{
public string connection_state;
}
还是可以吗? 这个问题有什么解决方案吗?
答案 0 :(得分:3)
正确的Xml有一个除了其他元素之外没有内容的根元素。如果您坚持使用那个微小的单标记伪数据,那么您是否需要使用XmlSerializer?为什么不创建一个带有构造函数的类,该构造函数采用文字“Xml”字符串:
using System.Xml.Linq;
public class connection_state {
public string state { get; set; }
public connection_state(string xml) {
this.state = XDocument.Parse(xml).Element("connection_state").Value;
}
}
修改强>
回应OP的评论:你没有 给我们一个XmlSerializer;您可以直接读取ResponseStream并将其传递给connection_state
构造函数:
String xmlString = (new StreamReader(webResponse.GetResponseStream())).ReadToEnd();
connection_state c= new connection_state(xmlString);
答案 1 :(得分:0)
替换
public class connection_state
{
public string state;
}
到
public class connection_state
{
public string state {set; get;}
}