このXMLを考えると:
<Items>
<Item>a</Item>
<Item>b</Item>
</Items>
どうすればこれを使用して逆シリアル化できXmlSerializer
ますか?いくつかのカスタムタイプの配列に、または単に。にstring[]
。
最も内側のタグが「文字列」と呼ばれる場合にこれを実行できることは知っていますが、カスタム名を保持したいと思います。
このXMLを考えると:
<Items>
<Item>a</Item>
<Item>b</Item>
</Items>
どうすればこれを使用して逆シリアル化できXmlSerializer
ますか?いくつかのカスタムタイプの配列に、または単に。にstring[]
。
最も内側のタグが「文字列」と呼ばれる場合にこれを実行できることは知っていますが、カスタム名を保持したいと思います。
LINQPadでXmlSerializerを使用する方法の1つを次に示します。
void Main()
{
using(var stream = new StringReader("<Items><Item>a</Item><Item>b</Item></Items>"))
{
var serializer = new XmlSerializer(typeof(Container));
var items = (Container)serializer.Deserialize(stream);
items.Dump();
}
}
[XmlRoot("Items")]
public class Container
{
[XmlElement("Item")]
public List<string> Items { get; set; }
}
XDocumentを使用する別の方法は次のとおりです
void Main()
{
var doc = XDocument.Parse("<Items><Item>a</Item><Item>b</Item></Items>");
var list = doc.Element("Items").Elements("Item").Select (d => (string)d);
list.Dump();
}