DataContract-десериализация и порядок полей
От: mDmitriy Россия  
Дата: 26.10.17 14:22
Оценка:
Всем привет!

Есть ли способ избежать ошибок десериализации, если порядок элементов во входном 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 порядка полей нет (даже если их явно указать в исходном классе)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.