当尝试从HTTPResponseMessage反序列化GenericXMLSecurityToken时,出现以下异常:
“无法创建类型的实例 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?
答案 0 :(得分:0)
不幸的是,我从未解决过这个问题,我只是通过将XML表示形式返回为字符串(GenericXmlSecurityToken.TokenXml.OuterXml
)来绕过了它。