В настоящее время я работаю с генерацией файлов XML, используемых для настройки сервера.
У меня есть класс, сгенерированный с помощью xsd, который содержит свойство типа System.Xml.XmlElement
.
public class GeneratedClass
{
...
private System.Xml.XmlElement informationField;
[System.Xml.Serialization.XmlArrayItemAttribute("Information", IsNullable=false)]
public System.Xml.XmlElement Information {
get {
return this.informationField;
}
set {
this.informationField = value;
}
}
...
}
У меня проблемы с "внедрением" пользовательского объекта в это свойство информации.
public class MyExampleObject
{
public string Name { get; set; }
public string Id { get; set;
}
Программа десериализует XML-файл типа GeneratedClass
, и после этого я хочу добавить MyExampleObject
к свойству Informations
.
В настоящее время я делаю это следующим образом:
XmlDocument doc = new XmlDocument();
using (XmlWriter writer = doc.CreateNavigator().AppendChild())
{
XmlSerializer serializer = new XmlSerializer(typeof(MyExampleObject));
serializer.Serialize(writer, MyObject);
}
this.Information = doc.DocumentElement;
После этого я сериализую весь объект в файл, но когда я делаю это, я получаю нежелательные атрибуты пространства имен xml.
<Information xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="">
Я нашел другие сообщения с похожими проблемами, но предложенные решения оставляют меня с <Information xmlns="">
, который все еще не является полным решением.
У меня такое ощущение, что может быть какой-то другой способ сделать это, но я не уверен, как.
Есть предложения?