string xmlstr = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>"
+ "<SampleModel>"
+ "<FIELD name=\"ID\">9693</FIELD>"
+ "<FIELD name=\"PARAM_NAME\">93223335</FIELD>"
+ "<FIELD name=\"DATA_TYPE\">1</FIELD>"
+ "<FIELD name=\"CREATE_DATE\">2017/2/22 14:43:20</FIELD>"
+ "<FIELD name=\"UPDATE_DATE\">2017/2/22 14:43:20</FIELD>"
+ "</SampleModel>";
[Serializable]
[XmlRootAttribute("SampleModel")]
public class SampleModel
{
public string ID { get; set; }
public string PARAM_NAME { get; set; }
public string DATA_TYPE { get; set; }
public string CREATE_DATE { get; set; }
public string UPDATE_DATE { get; set; }
}
public static object Deserialize (Type, type, string, XML)
{
try
{
using (StringReader Sr = new StringReader(XML))
{
XmlSerializer xmldes = new XmlSerializer (type);
return xmldes.Deserialize(SR);
}
}
catch (Exception e)
{
return null;
}
}
我想制作XML Deserialize对象, 此方法失败。在定义属性时,是否要添加属性[XmlElement(&#39; FIELD&#39;)? 我不知道如何定义类结构。你能救我吗?
答案 0 :(得分:0)
您的XML和您的对象并不完全相同。只有名为FIELD
的重复元素,没有包含您为其创建属性的名称的元素。
您需要一个镜像XML的对象结构:
public class SampleModel
{
[XmlElement("FIELD")]
public List<Field> Fields { get; set; }
}
public class Field
{
[XmlAttribute("name")]
public string Name { get; set; }
[XmlText]
public string Value { get; set; }
}