Как сериализовать список без внешнего элемента , используя сериализатор контрактов данных?Я использую .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;
}
}
Выше сериализуется как (при условии, что вlist):
<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].
Спасибо.