.net XmlSerializer要序列化类,我需要公共属性中给定的子标记名

.net XmlSerializer要序列化类,我需要公共属性中给定的子标记名,.net,xmlserializer,.net,Xmlserializer,我正在使用XmlSerializer序列化一个类,它有一个对象列表 作为它的一部分。现在发生的是,子标记名从类名中获取名称,但我想要的是它从子类中的公共字段获取名称。请帮助,我应该使用哪个xml属性使其工作 我有以下代码: SessionAnalyser sa = new SessionAnalyser(); Circle c = new Circle(); c.Name = "AP";// I want this property as the TAG Name 我得到的XML O/p: &

我正在使用XmlSerializer序列化一个类,它有一个对象列表 作为它的一部分。现在发生的是,子标记名从类名中获取名称,但我想要的是它从子类中的公共字段获取名称。请帮助,我应该使用哪个xml属性使其工作

我有以下代码:

SessionAnalyser sa = new SessionAnalyser();
Circle c = new Circle();
c.Name = "AP";// I want this property as the TAG Name
我得到的XML O/p:

<SessionAnalyser>
<Circle>
<Name>AP</Name>
...
</Circle>
</SessionAnalyser> 

美联社
...
所需的XML O/p:

<SessionAnalyser>
<AP>
...
</AP>
</SessionAnalyser> 

...

XmlSerializer
不支持这一点,请注意,因为它无法对其进行反序列化,因为它无法知道
.Name
预先映射到
中的AP

要使用
XmlSerializer
实现这一点,您必须实现
IXmlSerializable
,这需要大量的工作;然而,我怀疑在这一点上使用类似DOM的东西(
XElement
)会容易得多

TL;博士版本

对于
XmlSerializer
对您没有帮助的场景,不要使用
XmlSerializer


XmlSerializer
不支持这一点,请至少注意,因为它无法对其进行反序列化,因为它无法知道
.Name
预先映射到AP

要使用
XmlSerializer
实现这一点,您必须实现
IXmlSerializable
,这需要大量的工作;然而,我怀疑在这一点上使用类似DOM的东西(
XElement
)会容易得多

TL;博士版本

对于
XmlSerializer
对您没有帮助的场景,不要使用
XmlSerializer


AFAIK你可以通过实现自己的成功

AFAIK你可以通过实现自己的成功