【发布时间】:2016-11-09 08:07:54
【问题描述】:
我正在尝试创建一个用于 XML 序列化的通用类。 我用来保存通用对象 T 的属性称为“消息”,但我希望创建的该属性的 XML 节点按照我在 ElementType 类上的注释命名。
例子:
public class MessageWrapper<T>where T : class
{
[XmlElement]
public T Message { get; set; }
}
我希望在 Message 属性上持有的对象类 -
[XmlType("Connect"), Serializable]
public class ConnectMessage
{
[XmlElement("Machine_Name")]
public string MachineName { get; set; }
[XmlElement("Application_Name")]
public string AppName { get; set; }
}
现在的输出 XML 是这样的 -
<Message xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Message_ID>1</Message_ID>
<Message>
<Machine_Name>WS-8193</Machine_Name>
<Application_Name>TestApplication</Application_Name>
</Message>
</Message>
而不是这个:
<Message xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Message_ID>1</Message_ID>
<Connect>
<Machine_Name>WS-8193</Machine_Name>
<Application_Name>TestApplication</Application_Name>
</Connect>
</Message>
这可能吗?
【问题讨论】:
-
请注意,按照相同的方案,您的所有其他属性都必须命名为
<String >
标签: c# xml generics serialization