C # asmx WebService приведение проблемы - PullRequest
0 голосов
/ 09 октября 2018

У меня есть 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

...