我们有一个遗留系统,需要以非结构化格式提供(XML)数据。 .NET DataContractSerializer
以下甚至可能吗?CollectionDataDataContract序列化不添加自定义属性(DataMember)
鉴于以下DataContracts
[CollectionDataContract(Name = "Options", ItemName = "Option")]
public class OptionItemCollection : List<OptionItem>
{
[DataMember(Name = "Name")]
public string Name { get; set; }
public OptionItemCollection()
{
}
public OptionItemCollection(IEnumerable<OptionItem> items) : base(items)
{
}
}
[DataContract(Name = "Option")]
public class OptionItem
{
[DataMember]
public string Text { get; set; }
[DataMember]
public string Value { get; set; }
}
是否有可能直接序列化这个集合为以下XML表示:
<Options>
<Name>Juices</Name>
<Option Value="1">Orange Juice</Option>
<Option Value="2">Pineapple</Option>
<Option Value="3">Fruit Punch</Option>
</Options>
注: 这究竟是怎么遗留系统期望要提交的数据。
甚至:
<Options>
<Name>Juices</Name>
<Option><Value>1</Value><Text>Orange Juice</Text></Option>
<Option><Value>2</Value><Text>Pineapple</Text></Option>
<Option><Value>3</Value><Text>Fruit Punch</Text></Option>
</Options>
还要注意该强调的是名称和居住的选项元素中选项元素。
您是否允许更改DataContracts?您是否允许使用XML序列化而不是DataContract序列化? – mellamokb
是的,我们可以。但我只是想知道[更新和更高级的] DataContractSerializer是否可行 – Tawani