У меня следующий вывод XML-сериализации:
<?xml version="1.0"?>
<Message>
<Version>1.0</Version>
<Body>
<ExampleObject xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<EmampleOne>Hello!</EmampleOne>
</ExampleObject>
</Body>
</Message>
У меня есть следующие классы:
[Serializable]
public class Message<T>
{
public string Version { get; set; }
public T Body { get; set; }
}
[Serializable]
public class ExampleObject
{
public string EmampleOne { get; set; }
}
Если я сериализую их отдельно, я получу:
<?xml version="1.0"?>
<Message>
<Version>1.0</Version>
<Body>
<EmampleOne>Hello!</EmampleOne>
</Body>
</Message>
И:
<?xml version="1.0"?>
<ExampleObject>
<EmampleOne>Hello!</EmampleOne>
</ExampleObject>
Итак, как показано выше, я хочу, чтобы внутреннее тело содержало имя класса <ExampleObject>
.
Я использую дженерики, так как мне нужно иметь разныеТело сообщения, сериализуем с кодом:
var obj = new Message<ExampleObject>
{
Version = "1.0",
Body = example
};
var serializer2 = new XmlSerializer(typeof (Message<ExampleObject>));