質問:
C# を使用してクラスを XML にシリアル化するときに、名前空間に関連付けられたプレフィックスを制御するにはどうすればよいですか?予期される出力には、指定された名前空間プレフィックスが含まれています。
答え:
名前空間の接頭辞を指定するには、XmlSerializerNamespaces
クラスを使用できます。その方法は次のとおりです:
<code class="language-csharp">[XmlRoot("Node", Namespace = "http://flibble")] public class MyType { [XmlElement("childNode")] public string Value { get; set; } } static class Program { static void Main() { XmlSerializerNamespaces ns = new XmlSerializerNamespaces(); ns.Add("myNamespace", "http://flibble"); XmlSerializer xser = new XmlSerializer(typeof(MyType)); xser.Serialize(Console.Out, new MyType(), ns); } }</code>
このコードは、必要な名前空間プレフィックスを含む XML を生成します:
<code class="language-xml"><node xmlns:mynamespace="http://flibble"><childnode>something in here</childnode></node></code>
実行時に名前空間を変更する:
実行時に名前空間を変更する必要がある場合は、XmlSerializerNamespaces
に加えて XmlAttributeOverrides
を使用できます。
以上がC# XML シリアル化で名前空間プレフィックスを定義する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。