C# 在xml序列化期间删除属性的命名空间xml

C# 在xml序列化期间删除属性的命名空间xml,c#,xml,xml-serialization,xmlserializer,C#,Xml,Xml Serialization,Xmlserializer,我有一个这样的物体: 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> <

我有一个这样的物体:

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>

多谢各位


Ash.

如果您不拥有类型
名称
,您仍然可以通过在创建序列化程序时重写XML属性来控制其序列化

例如:

var overrides = new XmlAttributeOverrides();

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

var serializer = new XmlSerializer(
    typeof(A), overrides, null, null, string.Empty);
请参阅,以获取可用的演示