sYnced Posted January 2, 2016 at 11:50 PM Report Share #591225 Posted January 2, 2016 at 11:50 PM Boa Noite, Tenho a seguinte questão, se é possível fazer serialize de um objeto de uma classe que nele mesmo tenha objetos de outras mesmas classes. Tenho o seguinte código: XmlSerializer serializer = new XmlSerializer(sessao.GetType(), new XmlRootAttribute("Sessoes")); StreamWriter writer = new StreamWriter(d.ToString() + "/saves/sessoes.xml"); serializer.Serialize(writer.BaseStream, sessao); Estou a enviar um array da classe Sessao, vou mostrar os objetos de classes que lá também tenho criados: Artigo[] artigos; /// <summary> /// The pessoas /// </summary> Pessoa[] pessoas; Estes objetos de classes também estão lá dentro, eu ao fazer o serializer apenas me cria o xml com todos os valores da classe Sessao, menos dos objetos das outras classes. Alguém me pode dar uma luz de como posso fazer isto ? Listas(colletions) estão fora de questão nesta altura. Cumprimentos e um bom ano a todos Link to comment Share on other sites More sharing options...
castro849 Posted January 4, 2016 at 03:22 PM Report Share #591305 Posted January 4, 2016 at 03:22 PM Boa tarde, Relativamente ao listas, primeiro têm de declarar a lista genérica dentro da classe e seguir poderás introduzir um ou várias sessões diferentes. Experimenta o exemplo do codigo simples. Classe Sessão: public class Sessao { public string Nome; public List<Sessao> Lista = new List<Sessao>(); public Sessao() { } public Sessao(String Nome) { this.Nome = Nome; } } XML Serialization: Sessao Sessoes = new Sessao(); Sessoes.Lista.Add(new Sessao("Hello 1")); Sessoes.Lista.Add(new Sessao("Hello 2")); System.Xml.Serialization.XmlSerializer x = new System.Xml.Serialization.XmlSerializer(Sessoes.GetType()); StreamWriter writer = new StreamWriter("sessoes.xml"); x.Serialize(writer, Sessoes); XML Deserialization: Sessao sessao = new Sessao(); StreamReader reader = new StreamReader("sessoes.xml"); System.Xml.Serialization.XmlSerializer x = new System.Xml.Serialization.XmlSerializer(sessao.GetType()); sessao = (Sessao)x.Deserialize(reader); foreach (Sessao s in sessao.Lista) { MessageBox.Show(s.Nome); } Link to comment Share on other sites More sharing options...
sYnced Posted January 8, 2016 at 04:49 PM Author Report Share #591661 Posted January 8, 2016 at 04:49 PM Obrigado pela resposta, talvez sirva de ajuda para alguém, mas infelizmente não posso usar listas. Obrigado Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now