我有一个基本接口,IResponse...
public interface IResponse
{
int CurrentPage { get; set; }
int PageCount { get; set; }
}
...一个通用接口,ICollectionResponse,它继承自基本接口...
public interface ICollectionResponse<T> : IResponse
{
List<T> Collection { get; set; }
}
...和一个类,EmployeesResponse,它继承自通用接口,随后继承自基本接口...
public class EmployeesResponse : ICollectionResponse<Employee>
{
public int CurrentPage { get; set; }
public int PageCount { get; set; }
public List<Employee> Collection { get; set; }
}
public class Employee
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
我的问题就在这里。我有一个通用任务方法,它返回基本接口的实例 IResponse。在此方法中,我需要确定 T 是否从 ICollectionResponse 实现。
public class Api
{
public async Task<IResponse> GetAsync<T>(string param)
{
// **If T implements ICollectionResponse<>, do something**
return default(IResponse);
}
}
我已经尝试了所有版本的 IsAssignableFrom() 方法,但没有成功,包括:
typeof(ICollectionResponse<>).IsAssignableFrom(typeof(T))
我感谢任何反馈。
猛跑小猪
桃花长相依
相关分类