У меня есть C # asmx webservice WP.asmx
, строковый метод `Авторизация (строка PMSRequest)
[ScriptMethod(UseHttpGet = true)]
[WebMethod]
public string Authorisation(string PMSRequest)
, который десериализует строку JSON в класс с именем Details
class Details
{
public string Number { get; set; }
}
здесь:
Details obj = JsonConvert.DeserializeObject<Details>(PMSRequest)
и, в конце концов, возвращает строку.
Я пытаюсь вызвать ее из браузера
https://example.net/WP.asmx/Authorisation?PMSRequest="{\"Number\":\"5413\"}"
сильный текст, но я получаю ошибку
Could not cast or convert from System.String to My.Web.MyService.WP+Details
Newtonsoft.Json.JsonSerializationException: Error converting value
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)
Работает нормально, когда у меня такой же код, как в тестовом приложении C # Windows Form