use*_*779 37 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>
Run Code Online (Sandbox Code Playgroud)
我可以构建所有它但无法找到设置Document类型属性的方法,这里是对象类的一部分
[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;
}
Run Code Online (Sandbox Code Playgroud)
这给了我:
<Document>document name</Document>
Run Code Online (Sandbox Code Playgroud)
而不是:
<Document type="word">document name</Document>
Run Code Online (Sandbox Code Playgroud)
但是我找不到纠正这个的方法,请指教.
谢谢
bru*_*nde 56
你在哪里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;
}
Run Code Online (Sandbox Code Playgroud)
Tho*_*que 11
该string班没有一个type属性,所以你不能用它来创建所需的输出.你应该创建一个Document类:
public class Document
{
[XmlText]
public string Name;
[XmlAttribute("type")]
public string Type;
}
Run Code Online (Sandbox Code Playgroud)
您应该更改Document属性以键入Document
听起来你需要额外的课程:
public class Document
{
[XmlAttribute("type")]
public string Type { get; set; }
[XmlText]
public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
实例(在示例中)将具有Type = "word"和Name = "document name"; documents会是一个List<Document>.
顺便说一下 - 公共领域很少是个好主意......
| 归档时间: |
|
| 查看次数: |
60298 次 |
| 最近记录: |