C# 控制列表的Xml序列化<;对象>;

C# 控制列表的Xml序列化<;对象>;,c#,xml,serialization,xmlserializer,C#,Xml,Serialization,Xmlserializer,假设以下XML结构: <ROOT> <ELEMENT>...</ELEMENT> <ELEMENT>...</ELEMENT> <ANOTHERELEMENT>...</ANOTHERELEMENT> </ROOT> 到目前为止还不错,但现在我需要控制要序列化的ElementType类型的对象。这应该通过检查对象的IsEnabled属性来实现。只有IsEnabled=t

假设以下XML结构:

<ROOT>
    <ELEMENT>...</ELEMENT>   
    <ELEMENT>...</ELEMENT>
    <ANOTHERELEMENT>...</ANOTHERELEMENT>
</ROOT>
到目前为止还不错,但现在我需要控制要序列化的
ElementType
类型的对象。这应该通过检查对象的
IsEnabled
属性来实现。只有IsEnabled=true的对象才应序列化。此属性不是XML文档的一部分,但可以通过程序的GUI进行设置。据我所知,
ShouldSerialize[MemberName]
在这种情况下不起作用

起初,我考虑使用某种适配器属性,但想看看是否有一种优雅的方式来实现我的目标

不幸的是,对XML结构进行更改并不是真正的替代方法

先谢谢你们,伙计们。任何帮助都将不胜感激。 干杯
Zettel.

我认为没有任何内在的方法可以做到这一点。在建议中,本质上是按照您的建议序列化适配器属性。注意,它需要是一个数组而不是一个列表,否则序列化程序将在填充它之前将其设置回原位。
[XmlElement("ELEMENT")]
public List<ElementType> Elements { get; set; }