c# - 如何从具有通用返回类型的方法返回具体类的实例
问题描述
我有一个从我的应用程序中调用的方法。方法从Google.Apis.Util.Store.IDataStore
. 我想从该方法返回令牌,但我不知道如何。Token 是类类型 TokenResponse。如何从这样的方法返回类 TokenResponse?
public Task<T> GetAsync<T>(string key)
{
//TokenResponse token = new TokenResponse();
//token.RefreshToken = @"rere545454545";
//return token; -- I would like to return this, but it throws error
return Task.FromResult<T>(default); //that works, but not much help out of it
}
更新
基本上我想返回我自己的令牌,我已经在数据库中。但是尝试创建一个新实例,例如:
TokenResponse token = new TokenResponse()
抛出和错误
无法创建变量类型 TokenResponse 的实例,因为它没有 new() 约束
解决方案
解决问题的最简单方法是使用下一种方法:
public Task<T> GetAsync<T>(string key)
{
TokenResponse t = new TokenResponse();
// ...
return Task.FromResult((T) ((object) t));
}
您应该保证GetAsync<T>
始终使用类型参数调用该方法T = TokenResponse
。否则,此代码将抛出InvalidCastException
.
推荐阅读
- node.js - 无法使用 GraphQl api 在 MongoDb 中插入数据
- product - SQLSTATE [42S02]:未找到基表或视图:1146 表“ecomteck_productattachment”不存在
- java - 使用java从文本文件中删除重复行
- linux - Grep Results in new line after a match
- spring-boot - Pass userID in @PrePersist (@PreUpdate) method using Spring Boot and JWT
- ios - Connection lost when debug iOS app on iPhone
- sql - 如何根据传递的两个参数过滤获取结果?
- r - How to store the result of which postcode has the most occurrences of illness
- python - Token has been expired or revoked. error, while using gmail api
- php - SimpleSAMLphp Authenticate with Logindata from Login Form