Я пытаюсь десериализовать строку xml для объекта. Но мой obect всегда равен нулю.XML Deserialization не работает с абстрактным классом
У меня есть абстрактный класс (Response), класс, который наследуется от «Response» (DirectorSearchResponse) и объект в классе «DirectorSearchResponse» (HeaderResponse). После десериализации этот объект всегда равен нулю.
Response.cs
public abstract class Response
{
public HeaderResponse Header { get; set; }
public Response()
{
}
}
DirectorSearchResponse.cs
[XmlRoot("xmlresponse")]
public class DirectorSearchResponse : Response
{
public DirectorSearchResponse() : base()
{
/* DO NOTHING */
}
}
HeaderResponse.cs
[XmlRoot("header")]
public class HeaderResponse
{
[XmlElement("toto")]
public String toto { get; set; }
public HeaderResponse()
{
}
}
Мой бегущий код:
/* DESERIALIZE */
String toto = "<xmlresponse><header><toto>tutu</toto><reportinformation><time>08/04/2016 13:33:37</time><reporttype> Error</reporttype><country>FR</country><version>1.0</version><provider>www.creditsafe.fr</provider><chargereference></chargereference></reportinformation></header><body><errors><errordetail><code>110</code><desc></desc></errordetail></errors></body></xmlresponse>";
XmlSerializer xsOut = new XmlSerializer(typeof(DirectorSearchResponse));
using (TextReader srr = new StringReader(toto))
{
DirectorSearchResponse titi = (DirectorSearchResponse)xsOut.Deserialize(srr);
}
Когда я выполняю свой код, объект «titi» является инстанцированным, но «Заголовок» всегда равен нулю.
Как получить значение «toto» из xml?
Работает. Благодарю. – BaptX