問題:
在使用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中文網其他相關文章!