Eu tenho uma classe chamada WebserviceType
que obtive da ferramenta xsd.exe de um arquivo XSD.
Agora eu quero desserializar uma instância de um WebServiceType
objeto para uma string. Como posso fazer isso?
O MethodCheckType
objeto tem como parâmetros um WebServiceType
array.
Minha primeira tentativa foi como se eu o serializasse: com ae XmlSerializer
a StringWriter
(enquanto serializava, usei a StringReader
).
Este é o método em que serializo o WebServiceType
objeto:
XmlSerializer serializer = new XmlSerializer(typeof(MethodCheckType));
MethodCheckType output = null;
StringReader reader = null;
// catch global exception, logg it and throw it
try
{
reader = new StringReader(path);
output = (MethodCheckType)serializer.Deserialize(reader);
}
catch (Exception)
{
throw;
}
finally
{
reader.Dispose();
}
return output.WebService;
Editar:
Talvez eu pudesse dizer em outras palavras: eu tenho uma instância desse MethodCheckType
objeto e, por outro lado, tenho o documento XML a partir do qual serializei esse objeto. Agora, quero converter essa instância em um documento XML na forma de uma string. Depois disso, tenho que verificar se as duas strings (de documentos XML) são iguais. Tenho que fazer isso, porque faço testes de unidade do primeiro método em que li um documento XML em um StringReader
e o serializo em um MethodCheckType
objeto.
fonte
Respostas:
Aqui estão os métodos de conversão para as duas maneiras. this = instância de sua classe
fonte
using
padrão ouDispose
método de chamada para a liberação correta de recursos.using
? @KvanTTT?Sei que esta é uma postagem muito antiga, mas depois de olhar a resposta de LB, pensei em como poderia melhorar a resposta aceita e torná-la genérica para meu próprio aplicativo. Aqui está o que eu inventei:
Esses métodos agora podem ser colocados em uma classe auxiliar estática, o que significa que não há duplicação de código para cada classe que precisa ser serializada.
fonte
fonte
Esta é a minha solução, para qualquer objeto de lista, você pode usar este código para converter para layout xml. KeyFather é sua tag principal e KeySon é onde começa seu Forech.
fonte