簡體   English   中英

C#XmlSerializer:在嵌套對象上創建xmlns屬性

[英]C# XmlSerializer: Create xmlns attribute on a nested object

我想要使​​用的API需要我在嵌套元素上設置xmlns -attribute,如下所示:

<root>
   <mainelement>
   </mainelement>
   <mainelement>
      <subelement xmlns="http://example.com/xml" otherAttr="value">
      </subelement>
   </mainelement>    
</root>

subelement的類定義如下:

public class subelement
{
    [XmlAttribute]
    public string otherAttr { get; set; }
    [XmlAttribute]
    public string xmlns { get; set; } = "http://example.com/xml";
}

但是,當我嘗試使用XmlSerializer序列化根對象時, xmlns -attribute始終缺失。 否則它工作正常。 當我重命名它創建的這個屬性時,我想它與xmlns因為它是保留關鍵字。

此外,我無法使用標准方法將名稱空間設置為Serialize方法的第三個參數,因為我只希望此屬性位於subelement對象上。

有沒有辦法在序列化后手動編輯文件而完成此操作?

您需要在mainelementsubelement屬性上指定正確的命名空間。

public class mainelement
{
    [XmlElement(Namespace = "http://example.com/xml")]
    public subelement subelement { get; set; }
}

public class subelement
{
    [XmlAttribute]
    public string otherAttr { get; set; }    
}

一下工作演示的小提琴

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM