ホームページ >バックエンド開発 >C++ >XML データを C# オブジェクトに効果的に逆シリアル化する方法

XML データを C# オブジェクトに効果的に逆シリアル化する方法

Patricia Arquette
Patricia Arquetteオリジナル
2025-01-15 16:12:44622ブラウズ

How to Effectively Deserialize XML Data into C# Objects?

C# XML 逆シリアル化: 完全ガイド

XML データをオブジェクトに逆シリアル化することは、さまざまなアプリケーションで構造化情報にアクセスして処理する際の重要なステップです。この記事では、XML 逆シリアル化を成功させるためのクラスを構築する方法について詳しく説明します。

逆シリアル化用のクラスを構築する

次の XML の例を考えてみましょう:

<code class="language-xml"><steplist><step><name>Name1</name><desc>Desc1</desc></step><step><name>Name2</name><desc>Desc2</desc></step></steplist></code>

この XML を逆シリアル化するには、次のクラスを定義します:

<code class="language-csharp">[XmlRoot("StepList")]
public class StepList
{
    [XmlElement("Step")]
    public List<Step> Steps { get; set; }
}

public class Step
{
    [XmlElement("Name")]
    public string Name { get; set; }
    [XmlElement("Desc")]
    public string Desc { get; set; }
}</code>

使用例

次のテスト コードは、逆シリアル化プロセスを示しています。

<code class="language-csharp">string testData = @"<StepList>
                        <Step>
                            <Name>Name1</Name>
                            <Desc>Desc1</Desc>
                        </Step>
                        <Step>
                            <Name>Name2</Name>
                            <Desc>Desc2</Desc>
                        </Step>
                    </StepList>";

XmlSerializer serializer = new XmlSerializer(typeof(StepList));
using (TextReader reader = new StringReader(testData))
{
    StepList result = (StepList)serializer.Deserialize(reader);
}</code>

ファイルからロード

XML データがファイルに保存されている場合は、FileStream を使用して逆シリアル化できます。

<code class="language-csharp">using (FileStream fileStream = new FileStream("<你的文件路径>", FileMode.Open))
{
    StepList result = (StepList)serializer.Deserialize(fileStream);
}</code>

これらのガイドラインに従い、提供された例を使用すると、XML データを効率的に逆シリアル化し、アプリケーション内のオブジェクトとして処理できます。

以上がXML データを C# オブジェクトに効果的に逆シリアル化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。