1

Visual Studio 2010、C# .Net4 を使用して、ホスティング サーバーからクライアント ブラウザーに XML 経由でデータを送信する Web サイトを構築しています。

私のデータはオブジェクト(クラス)にあります。

using System.Xml.Serialization;

public class InitialDataForBrowser
{
    public string myParentNode;
    public string myChildNode;


    public InitialDataForBrowser()
    {

    }

    [XmlIgnore]
    public string _myChildNode
    {
        set
        {
            myChildNode = value;
        }
    }
}

これにより、次の結果が生成されます。

<myParentNode></myParentNode>
<myChildNode ></myChildNode >

オブジェクト内で子ノード要素を宣言するにはどうすればよいですか?

<myParentNode>
    <myChildNode ></myChildNode >
</myParentNode>

以下を使用して、上記のオブジェクトを XML ファイルに書き込みます。

FileStream fs = new FileStream("XMLFile.xml", FileMode.Create);
XmlSerializer xs = new XmlSerializer(typeof(InitialDataForBrowser));
xs.Serialize(fs, data);
fs.Close();
4

1 に答える 1

1

「Has A」関係を使用して、私が探しているものを達成できるとダムダムが言ったことを意味していると仮定します。

public class InitialDataForBrowser
{
    public ParentNode Parent { get; set; }
    public string MyName { get; set; }

    public InitialDataForBrowser()
    {
        Parent = new ParentNode();
        MyName = "InitialDataForBrowser";
    }
}

public class ParentNode
{
    public ChildNode Child { get; set; }

    public string MyName { get; set; }

    public ParentNode()
    {
        Child = new ChildNode();
        MyName = "Parent";
    }
}

public class ChildNode
{
    public string MyName { get; set; }

    public ChildNode()
    {
        MyName = "Child";
    }
}

シリアル化InitialDataForBrowserすると、必要な xml が取得されます。実際に値をインスタンス化する必要があることに注意してください。持っていないものをシリーズ化することはできません。(Null シリアライゼーションのオプションがありますが、それはあなたが望むものではないと思います)。

于 2013-01-14T15:27:06.967 に答える