C# XML シリアル化では、カスタマイズされた名前空間プレフィックスが必要になる場合があります。 デフォルトの動作では予測できないプレフィックスが生成されますが、これはオーバーライドできます。 名前空間プレフィックスを効果的に制御する方法は次のとおりです:
方法 1: XmlSerializerNamespaces
名前空間プレフィックスを管理するための推奨される方法は、XmlSerializerNamespaces
クラスを使用することです。これにより、XML ドキュメント内のプレフィックスと名前空間のマッピングを直接制御できるようになります。
<code class="language-csharp">[XmlRoot("Node", Namespace = "https://www.php.cn/link/8f94eafb14366ce488946e40d8b4694e")] public class MyType { [XmlElement("childNode")] public string Value { get; set; } } static class Program { static void Main() { XmlSerializerNamespaces namespaces = new XmlSerializerNamespaces(); namespaces.Add("myPrefix", "https://www.php.cn/link/8f94eafb14366ce488946e40d8b4694e"); // Define your prefix XmlSerializer serializer = new XmlSerializer(typeof(MyType)); serializer.Serialize(Console.Out, new MyType(), namespaces); } }</code>
このコード スニペットは、プレフィックス "myPrefix" を "https://www.php.cn/link/8f94eafb14366ce488946e40d8b4694e" 名前空間に明示的に割り当てます。
方法 2: XmlAttributeOverrides
実行時の名前空間調整の場合、XmlAttributeOverrides
とともに使用される XmlSerializer
クラスは、特定の要素または属性の動的名前空間変更を提供します。
<code class="language-csharp">XmlAttributeOverrides overrides = new XmlAttributeOverrides(); overrides.Add(typeof(MyType), "Node", new XmlAttributes { XmlNamespace = new XmlNamespaceDeclaration("https://www.php.cn/link/8f94eafb14366ce488946e40d8b4694e") }); XmlSerializer serializer = new XmlSerializer(typeof(MyType), overrides); serializer.Serialize(Console.Out, new MyType());</code>
このアプローチにより、名前空間をプログラムで変更できるため、さまざまな XML 構造を処理する際に柔軟性が得られます。 このアプローチでは XmlAttributes
と XmlNamespaceDeclaration
が使用されていることに注意してください。
以上がC# XML シリアル化で名前空間プレフィックスをカスタマイズする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。