我有一个通用的 APIResponse<T>
包装 API 调用结果的对象:
public class APIError
{
public string ErrorMessage { get; set; }
}
public class APIResponse<T>
{
public T Result { get; set; }
public APIError Error { get; set; }
public bool HasError
{
get { return Error != null; }
}
}
我有一个调用 API 的方法:
public APIResponse<string> GetUserName()
{
APIResponse<string> response = new APIResponse<string>();
try
{
// make http request
response.Result = httpResponse;
}
catch
{
response.Error = new APIError { ErrorMessage = "Some error occurred" };
}
return response;
}
// I call the method like this
APIResponse<string> userNameResponse = GetUserName();
// i need to handle the apiResponse
HandleAPIResponse(userNameResponse);
我想创建一个通用方法来检查 APIResponse<T>
对象,如果有错误则抛出异常,但我无法在不指定结果类型的情况下使其工作:
public void HandleAPIResponse(APIResponse<T> apiResponse)
{
if (apiResponse.HasError)
throw new Exception(apiResponse.Error.ErrorMessage);
}
我可以创建一个接受 APIResponse<T>
的方法吗?作为参数,但没有指定 T 的类型?
最佳答案
方法定义应该如下:
public void HandleAPIResponse<T>(APIResponse<T> apiResponse)
{
if (apiResponse.HasError)
throw new Exception(apiResponse.Error.ErrorMessage);
}
关于c# - 具有泛型参数的 Asp.net 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19677564/