15

重複の可能性:
XMLドキュメントを逆シリアル化する方法

C#で次のように定義されているクラスがあるとします。

public class Book
{
    public string Title {get; set;}
    public string Subject {get; set;}
    public string Author {get; set;}
}

次のようなXMLがあるとします。

<Book>
    <Title>The Lorax</Title>
    <Subject>Children's Literature</Subject>
    <Author>Theodor Seuss Geisel</Author>
<Book>

このXMLを使用してクラスのインスタンスをインスタンス化する場合、Bookこれを行うために私が知っている唯一の方法は、XML Documentクラスを使用し、XMLノードを列挙することです。

.netフレームワークは、XMLコードを使用してクラスをインスタンス化する何らかの方法を提供しますか?そうでない場合、これを達成するためのベストプラクティスは何ですか?

4

2 に答える 2

65

XMLシリアル化を使用して、XMLからクラスのインスタンスを作成できます。

XmlSerializer serializer = new XmlSerializer(typeof(Book));
using (StringReader reader = new StringReader(xmlDocumentText))
{
    Book book = (Book)(serializer.Deserialize(reader));
}
于 2012-07-02T20:37:59.580 に答える
8

XmlSerializerXMLドキュメントSystem.Xml.Serializationを逆シリアル化する方法はいくつかありDataContractSerializerますSystem.Runtime.Serialization

どちらも、シリアライザーに操作方法を指示する属性(それぞれに異なる属性)でクラスメンバーを装飾する必要があります。

于 2012-07-02T20:33:36.600 に答える