ほとんど構造化されていない形式で (XML) データをフィードする必要がある従来のシステムがあります。.NET でも次のことは可能DataContractSerializer
ですか?
次の 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>
また、 Options要素内にあるName要素とOption要素に重点が置かれていることにも注意してください。