У меня есть элемент, который наследуется от XTypedElement (генерируется с помощью LinqToXsd). У него есть строковое свойство, определенное так:
public string lang {
get {
XAttribute x = this.Attribute(XName.Get("lang", "xml"));
return XTypedServices.ParseValue<string>(x, XmlSchemaType.GetBuiltInSimpleType(XmlTypeCode.String).Datatype);
}
set {
this.SetAttribute(XName.Get("lang", "xml"), value, XmlSchemaType.GetBuiltInSimpleType(XmlTypeCode.String).Datatype);
}
}
Первоначально он был сгенерирован с помощью XName.Get ("lang"), но я добавил пространство имен "XML", потому что вывод должен выглядеть следующим образом:
<tag xml:lang="nl-NL">...</tag>
вместо этого я теперь получаю это:
<tag p1:lang="nl-NL" xmlns:p1="xml">...</tag>
Следующее может быть совершенно не связано, но я знаю, как решить эту проблему, используя старый класс System.Xml.Serialization.XmlSerializer. Там вы можете указать некоторые пространства имен при вызове метода Serialize. ToString () XTypedElement не имеет перегрузки, где я могу указать такие пространства имен. У кого-нибудь есть идеи?