我有以下XML代码段:
<dmFiles>
−
<dmFile dmUpFileGuid="" dmFileDescr="testcase01.pdf" dmFileMetaType="main" dmFileGuid="" dmMimeType="pdf" dmFormat="">
如果我创建一个强类型的C#类,其中包含dmFile属性的字符串属性(例如:dmFileDescr),我如何确保这些属性将序列化为我的c#类中的属性?
答案 0 :(得分:1)
在类成员上使用Xml属性。使用[XmlAttribute("name")]
。
您的实现将如下所示:
[XmlRoot("dmFile")]
public class DmFile
{
[XmlAttribute("dmUpFileGuid")]
public String UpFileGuid { get;set; }
...
}
答案 1 :(得分:1)
试试这个:
[Serializable]
[XmlRoot(ElementName="dmFile")]
public class File
{
[XmlAttribute(AttributeName="dmUpFileGuid")]
public string UploadGuid { get; set; }
[XmlAttribute(AttributeName = "dmFileDescr")]
public string Description { get; set; }
[XmlAttribute(AttributeName = "dmFileMetaType")]
public string MetaType { get; set; }
[XmlAttribute(AttributeName = "dmFileGuid")]
public string FileGuid { get; set; }
[XmlAttribute(AttributeName = "dmMimeType")]
public string MimeType { get; set; }
[XmlAttribute(AttributeName = "dmFormat")]
public string Format { get; set; }
}
按照以下步骤反序列化XML:
XmlSerializer s = new XmlSerializer(typeof(File));
File file = s.Deserialize(new StringReader(@"<dmFile ... />")) as File;
答案 2 :(得分:0)
您可以使用 XmlSerializer (de)序列化/到XML,并使用为Xml-Serialization提供的属性标记目标类。
使用正确的属性标记您的公共属性。它应该是 XmlAttributeAttribute 。 封闭类必须映射到dmFile-Element( XmlRootAttribute ) 如果以不同方式调用该属性,或者以不同于XML元素的方式调用该类,则需要指定XML-Element / Attribute名称。