У меня очень простая JSON строка
"{\"Region\":\"uk\"}"
Я преобразую его в словарь, как это
string data = "{\"Region\":\"uk\"}";
var dataOut = JsonConvert.DeserializeObject<Dictionary<string, string>>(data);
Приведенный выше код работает нормально на Моя локальная среда и среда QA / UAT, но при этом на рабочем сервере выдается следующая ошибка
Newtonsoft.Json.JsonSerializationException: Error converting value "{"Region":"uk"}" to type 'System.Collections.Generic.Dictionary`2[System.String,System.String]'. Path '', line 1, position 21. ---> System.ArgumentException: Could not cast or convert from System.String to System.Collections.Generic.Dictionary`2[System.String,System.String].
at Newtonsoft.Json.Utilities.ConvertUtils.EnsureTypeAssignable(Object value, Type initialType, Type targetType)
at Newtonsoft.Json.Utilities.ConvertUtils.ConvertOrCast(Object initialValue, CultureInfo culture, Type targetType)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.EnsureType(JsonReader reader, Object value, CultureInfo culture, JsonContract contract, Type targetType)
--- End of inner exception stack trace ---
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.EnsureType(JsonReader reader, Object value, CultureInfo culture, JsonContract contract, Type targetType)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)
at Newtonsoft.Json.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings)
at Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value, JsonSerializerSettings settings)
Здесь Do tnet fiddle , где код работает нормально
Newtonsoft . Json версия 7.0, но
. У меня есть версия Net framework для сред QA и UAT: 4.7.2558.0 , но на производстве - 4.8.3761.0
Возможно ли, что. Net Framework 4.8 является причиной этой ошибки.