如何序列化没有外部元素的列表使用数据契约序列化器?我正在使用.Net 3.5。我有一个类,其中包含一个列表,除其他外,我希望在没有外部元素的情况下序列化该列表,以符合相关的 XSD:
[DataContract(Name="MyClass")]
public class MyClass
{
...
[DataMember(Name="Parameters")]
public List<Parameter> Parameters;
...
}
[DataContract(Name="Parameter")]
public struct Parameter
{
[DataMember(Name="ValueName")]string ValueName;
[DataMember(Name="Value")]int Value;
public Parameter(string ValueName, int Value)
{
this.ValueName = ValueName;
this.Value = Value;
}
}
上面的序列化为(假设列表中只有一个参数):
<MyClass>
<Parameters>
<Parameter>
<ValueName></ValueName>
<Value></Value>
</Parameter>
</Parameters>
</MyClass>
我想将其序列化如下:
<MyClass>
<Parameter>
<ValueName></ValueName>
<Value></Value>
</Parameter>
</MyClass>
使用 XmlSerializer,我可以通过将 [XmlElement] 应用于列表来完成此操作:
[XmlElement ("Parameter")]
public List<Parameter> Parameters;
但是我不想使用XmlSerializer
因为我的类有一些不适合序列化的属性,我希望使用 [OnSerializing] 系列属性来处理这些属性。
Thanks.
The DataContract
序列化程序不允许对结果 XML 进行这种程度的控制,您将不得不使用XmlSerializer
为了实现这一目标。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)