次のような形式のデータがある場合:
<Person>
<Id>1</Id>
<FirstName>John</FirstName>
<LastName>Smith</LastName>
</Person>
次に、このC#コードはPersonのインスタンスにdesrialiseします
//assuming you have a string called "data" that contains the above XML.
XDocument xd=XDocument.Parse(data); //needs System.Xml.Linq for XDocument type.
using(var reader = xd.CreateReader())
{
using(XmlSerializer ser = new XmlSerializer(typeof(Person))
{
Person p = ser.Deserialize(reader) as Person;
//p will be null if it didn't work, so make sure to check it!
}
}
デシリアライザーでは大文字と小文字が区別されるため、要素のケースがクラスのプロパティの大文字と小文字と一致することを確認する必要があります(これは、シリアライザーにマップする方法を指示するシリアライザー属性でプロパティを装飾することで実現できます) 。
プレーンなネイティブシリアライザーは、このような単純なオブジェクトには最適ですが、char、boolなどの一部のデータ型につまずく可能性があるため、属性のリンクをチェックアウトしてください。
質問で指定した形式から実行する場合は、カスタムシリアライザーを作成する必要があります。この場合、ファイルから読み取り、XDocumentHopeを使用してデータからXMLを生成することをお勧めします。