1

以下のようなコレクションを持つクラスがあります

public class MyClass:IXmlSerializable
{
    int vesrion;
    private Collection<int> testcoll;
}

それをシリアル化するために、以下のように WriteXML を書きました

public void WriteXml(XmlWriter writer)
{

    writer.WriteAttributeString("Version", this.vesrion.ToString());    

    XmlSerializer serializer = new XmlSerializer(typeof(Collection<int>));
    serializer.Serialize(writer, Testcoll);
 }

Testcoll の場合と同様に、出力 xml に "ArrayOfInt" タグが付けられるようになりました。しかし、この名前を別の「MyCollection」に変更したいと思います。

これを達成する方法を教えてください。

4

2 に答える 2

1

次のように、フィールドに対して属性を使用します。

[XmlElement(ElementName = "MyCollection")]
private Collection<int> testcoll;

編集:@コメント、それらの詳細を見逃しました。機能する回答については以下を参照してください(コンパイルおよびテスト済み)

XmlSerializer serializer = new XmlSerializer(typeof(Collection<int>), new XmlRootAttribute("MyCollection"));
serializer.Serialize(writer, Testcoll);
于 2012-06-21T14:33:07.830 に答える