我有以下XML片段:
<dmFiles>
−
<dmFile dmUpFileGuid="" dmFileDescr="testcase01.pdf" dmFileMetaType="main" dmFileGuid="" dmMimeType="pdf" dmFormat="">如果我为C#属性创建一个强类型的dmFile类(例如: dmFileDescr),我如何确保这些属性可以序列化为我的c#类中的属性呢?
发布于 2009-10-19 10:58:41
通过在类成员上使用Xml属性。使用[XmlAttribute("name")]。您的实现将如下所示:
[XmlRoot("dmFile")]
public class DmFile
{
[XmlAttribute("dmUpFileGuid")]
public String UpFileGuid { get;set; }
...
}发布于 2009-10-19 11:05:12
试试这个:
[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;发布于 2009-10-19 11:01:38
您可以使用XmlSerializer对XML进行反序列化,并使用为Xml序列化提供的属性标记目标类。
使用正确的属性标记您的公共属性。应该是XmlAttributeAttribute.如果属性的调用方式不同,或者类的调用方式与XML元素不同,则封闭类必须映射到dmFile-Element (XmlRootAttribute),您需要指定XML- element /属性名称。
https://stackoverflow.com/questions/1588018
复制相似问题