Всем привет!
Есть ли способ избежать ошибок десериализации, если порядок элементов во входном XML не совпадает с ожидаемым?
Например:
<Auth>
<ApiLogin>asasd<ApiLogin>
<ApiPassword>456465<ApiPasword>
</Auth>
работает
а
<Auth>
<ApiPassword>456465<ApiPasword>
<ApiLogin>asasd<ApiLogin>
</Auth>
нет
сам класс на сервере
[DataContract]
internal class AuthInfo
{
/// <summary>
/// The api login
/// </summary>
[DataMember(IsRequired = true)]
internal string ApiLogin;
/// <summary>
/// The api password
/// </summary>
[DataMember(IsRequired = true)]
internal string ApiPassword;
}
Зачем вообще нужна эта проверка по порядку?
Это же не значит, что названия элементов в XML могут быть любыми
PS. на клиенте в классе, сгенерированном из WSDL порядка полей нет (даже если их явно указать в исходном классе)
Здравствуйте, mDmitriy, Вы писали:
D>Всем привет!
D>Есть ли способ избежать ошибок десериализации, если порядок элементов во входном XML не совпадает с ожидаемым?
Емнип только подменой сериалайзера.
D>PS. на клиенте в классе, сгенерированном из WSDL порядка полей нет (даже если их явно указать в исходном классе)
Порядок в схеме, в ней xs:sequence должно быть.
Также см
https://stackoverflow.com/a/1727704/318263
Здравствуйте, Sinix, Вы писали:
S>Емнип только подменой сериалайзера.
т.е., не стандартный DataContractSerializer?
S>Порядок в схеме, в ней xs:sequence должно быть.
S>Также см https://stackoverflow.com/a/1727704/318263
спс...