首先,Atom名称空间通常是:
xmlns:atom="http://www.w3.org/2005/Atom"
为了让你的标签使用
atom
名称空间前缀,需要用它标记属性:
[XmlElement("link", Namespace="http://www.w3.org/2005/Atom")]
public AtomLink AtomLink { get; set; }
你还需要告诉
XmlSerializer
使用它(感谢@Marc Gravell):
XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
ns.Add("atom", "http://www.w3.org/2005/Atom");
XmlSerializer xser = new XmlSerializer(typeof(MyType));
xser.Serialize(Console.Out, new MyType(), ns);