c# - 如何为 C# XML 序列化添加属性

标签 c# xml-serialization

我在序列化和对象方面遇到问题,我可以让它创建所有正确的输出,除了我有一个需要值和属性的元素。这是所需的输出:

<Root>
  <Method>Retrieve</Method>
  <Options>
    <Filter>
      <Times>
        <TimeFrom>2009-06-17</TimeFrom>
      </Times>
      <Document type="word">document name</Document>
    </Filter>
  </Options>
</AdCourierAPI>

我可以构建所有但找不到设置文档类型属性的方法,这里是对象类的一部分

[XmlRoot("Root"), Serializable]    
public class Root    
{    
    [XmlElement("Method")]    
    public string method="RetrieveApplications";    
    [XmlElement("Options")]    
    public _Options Options;    
}    
public class _Options    
{
    [XmlElement("Filter")]    
    public _Filter Filter;    
}
public class _Filter    
{
    [XmlElement("Times")]    
    public _Times Times;    
    [XmlElement("Documents")]    
    public string Documents;    
}

这给了我:

<Document>document name</Document>

而不是:

<Document type="word">document name</Document>

但是我找不到解决这个问题的方法,请指教。

谢谢

最佳答案

type 存储在哪里?

通常你可以有这样的东西:

class Document {
    [XmlAttribute("type")]
    public string Type { get; set; }
    [XmlText]
    public string Name { get; set; }
}


public class _Filter    
{
    [XmlElement("Times")]    
    public _Times Times;    
    [XmlElement("Document")]    
    public Document Document;    
}

关于c# - 如何为 C# XML 序列化添加属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1012360/

相关文章:

c# - 在什么情况下,类不会受到可访问性级别的影响?

c# - 根据环境使用具有不同存储帐户的 Azure Functions

c# - TPL 数据流 block 消耗所有可用内存

java - 简单 XML : suppress length attribute in serialized arrays

c# - 使用 .NET XmlSerializer 反序列化时使用多个命名空间

c# - MVC 从另一个 MVC 应用程序渲染 (RenderPartial, RenderAction) Html

c# - TestRunType 的序列化抛出异常

java - 选择要序列化的属性

c# - 具有 Xml 反序列化的 WCF DataContract 中的命名空间

c# - 即使在 Debug模式下关闭应用程序后,Visual Studio 也不会停止