从JsonResult反序列化GenericXMLSecurityToken

时间:2019-03-29 16:50:10

标签: c# asp.net-web-api asp.net-core json.net asp.net-core-mvc

当尝试从HTTPResponseMessage反序列化GenericXMLSecurityToken时,出现以下异常:

  

“无法创建类型的实例   System.IdentityModel.Tokens.SecurityKeyIdentifierClause。类型是   接口或抽象类,无法实例化。路径   'internalTokenReference.assertionId',第1行,位置162。”

在服务器上,使用

创建序列化对象
new JsonResult(genericToken)

其中genericTokenGenericXmlSecurityToken。在客户端,我正在使用

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 :(得分:0)

不幸的是,我从未解决过这个问题,我只是通过将XML表示形式返回为字符串(GenericXmlSecurityToken.TokenXml.OuterXml)来绕过了它。