Я десериализирую следующий XML в объект C #
<?xml version="1.0" encoding="utf-8"?>
<Message>
<Request>
<FromInfo>
<Provider>
<ProviderName><![CDATA[Name]]></ProviderName>
</Provider>
</FromInfo>
<ToInfo>
<Provider>
<ProviderID><![CDATA[123]]></ProviderID>
<ID><![CDATA[1]]></ID>
</Provider>
</ToInfo>
</Request>
<RS>
<Add>
<AccountInfoRecord>
<UserInfo>
<FirstName><![CDATA[Some]]></FirstName>
<LastName><![CDATA[Name]]></LastName>
<DayPhone><![CDATA[0123456]]></DayPhone>
<Email><![CDATA[SampleEmail]]></Email>
<UserAddress>
<Address1><![CDATA[Address]]></Address1>
<Address2><![CDATA[Something]]></Address2>
<City><![CDATA[Oslo]]></City>
<State />
<PostalCode><![CDATA[1330]]></PostalCode>
<Country><![CDATA[some]]></Country>
</UserAddress>
</UserInfo>
<YourUserKey />
</AccountInfoRecord>
</Add>
</RS>
</Message>
Я получаю ошибку в <State />
Но не в <YourUserKey />
, а <State></State>
Ниже приведена ошибка
Unable to cast object of type 'System.Xml.XmlElement' to type 'System.Xml.XmlCDataSection'.
А это класс модели
[XmlElement(ElementName = "State")]
public XmlCDataSection StateCData
{
get
{
return !string.IsNullOrEmpty(State)
? new XmlDocument().CreateCDataSection(State) : null;
}
set
{
State = value?.Value;
}
}
Я также просмотрел несколько тем, но не смог найти конкретный ответ.
Как сериализовать строку как CDATA с использованием XmlSerializer?