Tengo una clase preexistente serializable genéricamente con
System.Xml.Serialization.XmlSerializer, esta clase tiene unas propiedades
que se serializan como elementos y otras como atributos. Ahora debo agregar
una nueva propiedad de tipo Dictionary<string,string>. 

¿Podrían ayudarme para lograr que el contenido <Key,Value> de esta nueva
propiedad Dictionary se serialize como atributos dentro de un elemento?
¿Creen que será necesario extender el tipo Dictionary e implementarle un
serializador customizado?

Clase original:
        public class Class1
        {
                public Class1(){}

                [System.Xml.Serialization.XmlAttribute(AttributeName =
"Atrib1")]
                public int Prop1
                {
                        get;
                        set;
                }

                [System.Xml.Serialization.XmlAttribute(AttributeName =
"Atrib2")]
                public string Prop2
                {
                        get;
                        set;
                }

                [System.Xml.Serialization.XmlElement(ElementName = "Prop3",
Order = 0)]
                public string Prop3
                {
                        get;
                        set;
                }
        }

A esa clase debo agregar una nueva propiedad:

        public Dictionary<string,string> Prop4 { get; set; }

Para obtener un resultado serializado en XML del tipo:

<root>
        <Prop3 Atrib1="xxx" Atrib2="yyy" Prop4Key1=" Prop4Value1"
Prop4Key2=" Prop4Value2" Prop4KeyN=" Prop4ValueN" />
</root>




Responder a