Necesito serializar IEnumerable. Al mismo tiempo, quiero que el nodo raíz sea "Canales" y el nodo de segundo nivel - Canal (en lugar de ChannelConfiguration).Reemplazar nombre de clase para XmlSerialization
Aquí es mi definición serializador:
_xmlSerializer = new XmlSerializer(typeof(List<ChannelConfiguration>), new XmlRootAttribute("Channels"));
He anulado nodo raíz proporcionando XmlRootAttribute pero no he encontrado una opción para configurar el canal en lugar de ChannelConfiguration como segundo nodo de nivel.
Sé que puedo hacerlo presentando un contenedor para IEnumerable y usando XmlArrayItem pero no quiero hacerlo.
¿Por qué no quieren hacer la opción fácil? ¿por curiosidad? (Tenga en cuenta también que: el uso de constructores no triviales significa que ** debe ** almacenar en caché el serializador; de lo contrario, se producen ensamblados; el constructor 'XmlSerializer (Type)' básico no sufre esto) –
¿Es usted dueño de la clase ChannelConfiguration? ¿puedes decorarlo con atributos? Si es así, probablemente tenga una solución. –
@MarcGravell, puede que tengas razón y debería usar un contenedor – SiberianGuy