簡體   English   中英

在XML序列化過程中刪除屬性的名稱空間xml

[英]Remove namespace xml of a property during XML serialization

我有一個這樣的對象:

public class A {
 public int ID {get; set;} 
 public Name PName {get; set;} 
}

[XmlType(Namespace = "somenamespace")]
public class Name{
 public string FName {get; set;}
 public string LName {get; set;}
}

當我對此序列化時,我得到以下XML:

<A>
 <ID>1</ID>
 <PName>
  <FName xmlns="somenamespace">First Name</FNAME>
  <LName xmlns="somenamespace">Last Name</LNAME>
 </PName>
</A>

有沒有一種方法可以在序列化過程中擺脫類“ Name”的名稱空間?

顯然,我不能只刪除類“名稱”的XML類型屬性。

我已經嘗試過此解決方案(第一個答案),但對我而言不起作用。 在.NET中序列化對象時忽略所有xsi和xsd名稱空間?

提前謝謝了,

灰。

如果您沒有Name類型,則在創建序列化程序時,仍然可以通過使用XmlAttributeOverrides覆蓋XML屬性來控制其序列化。

例如:

var overrides = new XmlAttributeOverrides();

overrides.Add(typeof(Name), new XmlAttributes());

var serializer = new XmlSerializer(
    typeof(A), overrides, null, null, string.Empty);

請參閱此小提琴以獲得有效的演示。

暫無
暫無

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

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