首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C#,XML to Class DeSerialization问题

C#,XML to Class DeSerialization问题
EN

Stack Overflow用户
提问于 2009-10-19 10:48:39
回答 3查看 584关注 0票数 0

我有以下XML片段:

代码语言:javascript
复制
<dmFiles>
−
<dmFile dmUpFileGuid="" dmFileDescr="testcase01.pdf" dmFileMetaType="main" dmFileGuid="" dmMimeType="pdf" dmFormat="">

如果我为C#属性创建一个强类型的dmFile类(例如: dmFileDescr),我如何确保这些属性可以序列化为我的c#类中的属性呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-10-19 10:58:41

通过在类成员上使用Xml属性。使用[XmlAttribute("name")]。您的实现将如下所示:

代码语言:javascript
复制
[XmlRoot("dmFile")]
public class DmFile
{
   [XmlAttribute("dmUpFileGuid")]
   public String UpFileGuid { get;set; }

   ...
}
票数 1
EN

Stack Overflow用户

发布于 2009-10-19 11:05:12

试试这个:

代码语言:javascript
复制
[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:

代码语言:javascript
复制
XmlSerializer s = new XmlSerializer(typeof(File));
File file = s.Deserialize(new StringReader(@"<dmFile ... />")) as File;
票数 1
EN

Stack Overflow用户

发布于 2009-10-19 11:01:38

您可以使用XmlSerializer对XML进行反序列化,并使用为Xml序列化提供的属性标记目标类。

使用正确的属性标记您的公共属性。应该是XmlAttributeAttribute.如果属性的调用方式不同,或者类的调用方式与XML元素不同,则封闭类必须映射到dmFile-Element (XmlRootAttribute),您需要指定XML- element /属性名称。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1588018

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档