让我们说我有一个SomeDTO类,我想在主函数中进行序列化:
[XmlElement(MethodCall)]
public class SomeDTO
{
[XmlElement("AllowStereo")]
bool? UseStereo {get; set;}
[XmlElement("Kg")]
int? Weight{get; set;}
}
static Main()
{
var methodCall = new SomeDTO();
methodCall.UseStereo = true;
XmlSerializer serializer = new XmlSerializer(typeof(SomeDTO));
var stream = new MemoryStream();
var writer = new StreamWriter(stream);
serializer.serialize(writer, methodCall);
//Code to display the stream
}
我如何影响UseSecondChannel如何转换为xml?
我想要以下形式的输出:
<methodcall>
<member>
<name>AllowStereo<\name>
<value><boolean>1<\boolean><value>
<\member>
<\methodcall>
我们有一个用例,其中我们使用xmlrpc交换消息。每个DTO代表一个特定的RPC。业务逻辑中的类用于填充DTO。
我找不到任何以所需方式影响XmlElementAttribute功能的方法。我曾期望找到一个构造函数参数或要覆盖的虚函数。
此外,我在System.Xml.Serialization命名空间中找不到其他与Xml相关的属性,可以帮助我将简单的Element转换为嵌套元素。
DTO包含许多属性,但是只有那些“集合”应该显示在XML中。在主程序中未设置权重,因此不应以XML显示。
实际结果:
<methodcall>
<AllowStereo>1><\AllowStereo>
<\methodcall>