Serializacion objetos complejos
Publicado por Juan (10 intervenciones) el 08/10/2010 19:33:31
Estoy tratando de serializar un conjunto de Objetos complejo.
La variable que quiero serializar es del tipo Dictionary<int,ObjetoA> donde ObjetoA es del tipo Dictionary<int,ObjetoB>, donde Objeto B es un List<ObjetoC> y objetoC tiene 3 atributos, un string, y dos listas de String.
He leido acerca de lo complejo de serializar dictionatios por las interfaces que implementan.
Encontre un codigo parecido a este:
XmlWriterSettings setting = new XmlWriterSettings();
setting.Indent = true;
XmlWriter xtw = XmlTextWriter.Create("c:/casas.xml", setting);
XmlDictionaryWriter xdw = XmlDictionaryWriter.CreateDictionaryWriter(xtw);
System.Runtime.Serialization.DataContractSerializer dcs = new System.Runtime.Serialization.DataContractSerializer(typeof(Dictionary<string, CinexDLL.Contenidos>));
dcs.WriteObject(xdw, Cines[1]);
xtw.Close();
y agregue los atributos
[XmlInclude(typeof(type))]
[XmlRoot("Nombre")]
[XmlArrayAttribute("Nombre")]
donde deben ir
pero el .DataContractSerializer me da problema porque no espera los objetos del tipo ObjetoA.
Alguien tiene alguna idea de como se podria resolver?
gracias
La variable que quiero serializar es del tipo Dictionary<int,ObjetoA> donde ObjetoA es del tipo Dictionary<int,ObjetoB>, donde Objeto B es un List<ObjetoC> y objetoC tiene 3 atributos, un string, y dos listas de String.
He leido acerca de lo complejo de serializar dictionatios por las interfaces que implementan.
Encontre un codigo parecido a este:
XmlWriterSettings setting = new XmlWriterSettings();
setting.Indent = true;
XmlWriter xtw = XmlTextWriter.Create("c:/casas.xml", setting);
XmlDictionaryWriter xdw = XmlDictionaryWriter.CreateDictionaryWriter(xtw);
System.Runtime.Serialization.DataContractSerializer dcs = new System.Runtime.Serialization.DataContractSerializer(typeof(Dictionary<string, CinexDLL.Contenidos>));
dcs.WriteObject(xdw, Cines[1]);
xtw.Close();
y agregue los atributos
[XmlInclude(typeof(type))]
[XmlRoot("Nombre")]
[XmlArrayAttribute("Nombre")]
donde deben ir
pero el .DataContractSerializer me da problema porque no espera los objetos del tipo ObjetoA.
Alguien tiene alguna idea de como se podria resolver?
gracias
Valora esta pregunta
0