【问题标题】:Deserialize GenericXMLSecurityToken from JsonResult从 JsonResult 反序列化 GenericXMLSecurityToken
【发布时间】:2019-08-20 16:02:50
【问题描述】:

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

"无法创建类型的实例 System.IdentityModel.Tokens.SecurityKeyIdentifier 子句。类型是一个 接口或抽象类,不能实例化。小路 '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?

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2016-12-15
      • 2022-07-19
      • 1970-01-01
      • 1970-01-01
      • 2020-08-19
      • 2013-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多