Десериализовать GenericXMLSecurityToken из JsonResult - PullRequest
0 голосов
/ 29 марта 2019

При попытке десериализации GenericXMLSecurityToken из HTTPResponseMessage я получаю следующее исключение:

"Не удалось создать экземпляр типа System.IdentityModel.Tokens.SecurityKeyIdentifierClause. Тип является интерфейсом или абстрактным классом.и не может быть создан. Путь 'internalTokenReference.assertionId', строка 1, позиция 162. "

На сервере сериализованный объект создается с использованием

new JsonResult(genericToken)

, где genericTokenэто GenericXmlSecurityToken.На стороне клиента я использую

HttpResponseMessage response = await httpClient.PostAsync("https://localhost:44359/api/TokenService/RequestToken", requestcontent);
String responseString = await response.Content.ReadAsStringAsync();
GenericXMLSecurityToken result = JsonConvert.DeserializeObject<GenericXMLSecurityToken>(responseString);

, однако последняя строка выдает исключение с текстом выше.Я понимаю эту ошибку настолько, насколько знаю, что не могу создать экземпляр этого типа, потому что он абстрактный, есть ли другой способ сериализации этого типа, чтобы обойти это, или он просто не сериализуем в JSON?

1 Ответ

0 голосов
/ 04 июня 2019

К сожалению, я никогда не решал эту проблему, я просто обошел ее, вместо этого вернув XML-представление в виде строки (GenericXmlSecurityToken.TokenXml.OuterXml).

...