JsonSerializer.GetMatchingConverter (System.Коллекции.Общий.Преобразователи IList`1[T], Система.Введите ObjectType)

#c# #json #xamarin #xamarin.forms #xamarin.android

#c# #json #xamarin #xamarin.forms #xamarin.android

Вопрос:

Я иногда получаю эту ошибку в нескольких областях при десериализации ответа API

Трассировки стека

Newtonsoft.Json JsonSerializer.GetMatchingConverter (System.Коллекции.Общий.Список`1[T] преобразователей, System.Введите ObjectType)

Newtonsoft.Json.Сериализация по умолчанию ContractResolver.Инициализировать Contract (Newtonsoft.Json.Сериализация.Контракт JsonContract)

Newtonsoft.Json.Сериализация по умолчанию ContractResolver.CreateObjectContract (System.Введите ObjectType)

Newtonsoft.Json.Сериализация по умолчанию ContractResolver.Создайте контракт (System.Введите ObjectType)

Система.Коллекции.Параллельный ConcurrentDictionary 2[TKey,TValue].GetOrAdd (TKey key, System.Func 2[T,TResult] valueFactory)

Newtonsoft.Json.Утилиты ThreadSafeStore`2[TKey,TValue].Получить (ключ TKey)

Newtonsoft.Json.Сериализация DefaultContractResolver.ResolveContract (System.Введите тип)

Newtonsoft.Json.Сериализация JsonSerializerInternalReader.GetContractSafe (System.Введите тип)

Newtonsoft.Json.Сериализация JsonSerializerInternalReader.Десериализовать (программа чтения Newtonsoft.Json.JsonReader, System.Введите ObjectType, System.Логическая проверка дополнительного содержимого)

Newtonsoft.Json JsonSerializer.Десериализация внутренней (Newtonsoft.Json.JsonReader для чтения, System.Введите ObjectType)

Ньютонсофт.Json JsonSerializer.Десериализовать (Newtonsoft.Json.JsonReader для чтения, System.Тип ObjectType)

Ньютонсофт.Json jsonконвертировать.Десериализация объекта (System.Строковое значение, система.Введите тип, Newtonsoft.Json.Настройки JsonSerializerSettings)

Ньютонсофт.Json jsonконвертировать.DeserializeObject[T] (Система.Строковое значение, Newtonsoft.Json.Настройки JsonSerializerSettings)

Newtonsoft.Json JsonConvert.Десериализация объекта [T] (System.Строковое значение)

TSP.APIService Обслуживание пользователей.GetDistrictsAndWards ()

             try 
            { 
                var response = (HttpResponseMessage)await _restClient.CallApiAsync(EndPoint, "GET", null, HeaderParams); 
                if (response != null amp;amp; (response.IsSuccessStatusCode)) 
                { 
                    var content = await response.Content.ReadAsStringAsync(); 
                    var result = JsonConvert.DeserializeObject<APIResult<List<DistrictsandWardsResponse>>>(content); 
                    return resu<
                } 
                else 
                { 
                    ViewModelLocator.TrackAPIException(EndPoint, httpResponse); 
                } 
                return default(APIResult<List<DistrictsandWardsResponse>>); 
            } 
            catch (Exception ex) 
            {
                ViewModelLocator.TrackException(ex);
            }
    
 

Комментарии:

1. Вы могли бы опубликовать соответствующий код, чтобы мы могли попытаться выяснить причину .

2. Вы включили обратную трассировку, но каков тип исключения и сообщение? JsonSerializer.GetMatchingConverter(IList<JsonConverter>? converters, Type objectType) похоже, он намеренно не создает исключение при сборке релиза.

3. Получение типа исключения как System. Исключение TypeLoadException: не удалось разрешить тип с токеном 01000066 из typeref (ожидаемый класс ‘System. VewSeType’ в сборке ‘mscorlib, версия = 2.0.5.0, культура = нейтральная, PublicKeyToken=7cec85d7bea7798e’) сборка: mscorlib, версия = 2.0.5.0, Культура = нейтральная, PublicKeyToken=7cec85d7bea7798e тип: Система. Элемент VewSeType:(null)

4. ` попробуйте { var response = (HttpResponseMessage)ожидает _restClient. CallApiAsync(конечная точка, «GET», null, HeaderParams); если (ответ != null amp;amp; (ответ. IsSuccessStatusCode)) { содержимое переменной = ожидает ответа. Содержание. ReadAsStringAsync(); результат var = JsonConvert. ДесериализиРовать объект<APIResult<Список<Округа и ответ>>>(содержимое); возвращает результат; } else { ViewModelLocator. TrackAPIException(конечная точка, HttpResponse); } возвращает значение по умолчанию(APIResult<Список <округиииwardsresponse>>); } перехват (исключение ex) { }`

5. Отредактируйте свой вопрос (нажмите ссылку «редактировать»), чтобы добавить свою информацию.