声明C#泛型类型方法

声明C#泛型类型方法,c#,generics,C#,Generics,我有一门课: internal class Paginated<T> where T : class { public List<T> data { get; set; } public int total { get; set; } public int page { get; set; } public int per_page { get; set; } public Paging paging { get; set; }

我有一门课:

internal class Paginated<T> where T : class
{
    public List<T> data { get; set; }

    public int total { get; set; }
    public int page { get; set; }
    public int per_page { get; set; }
    public Paging paging { get; set; }
}
内部类分页,其中T:class
{
公共列表数据{get;set;}
公共整数总计{get;set;}
公共整型页{get;set;}
每_页公共整数{get;set;}
公共分页{get;set;}
}
在另一节课上,我有一个方法:

public T RequestAllPaginated<T>() where T : Paginated<AnyType> //AnyType???
{
    var item = Request<T>();

    //Get all data from paging property
    if(item != null)
    {
        var i = item as Paginated<AnyType>; //AnyType???
        var data = i.data;

    }

    return item;
}
public T RequestAllPaginated(),其中T:Paginated//AnyType???
{
var item=Request();
//从分页属性获取所有数据
如果(项!=null)
{
var i=分页的项目;//AnyType???
var数据=i.数据;
}
退货项目;
}
T始终是分页的类型。问题是我如何在
RequestAllPaginated
方法声明中确定并在以后强制转换它?

尝试此解决方案

public T RequestAllPaginated<T, TK>() where T : Paginated<TK> where TK : class
{
    var item = Request<T>();

    //Get all data from paging property
    if(item != null)
    {
        var i = item as Paginated<TK>;
        var data = i.data;

    }

    return item;
}
public T RequestAllPaginated(),其中T:Paginated,其中TK:class
{
var item=Request();
//从分页属性获取所有数据
如果(项!=null)
{
var i=分页的项目;
var数据=i.数据;
}
退货项目;
}
替代解决方案:

public Paginated<T> RequestAllPaginated<T>() where T : class
{
    var item = Request<Paginated<T>>();

    //Get all data from paging property
    if(item != null)
    {
        var i = item as Paginated<T>;
        var data = i.data;

    }

    return item;
}
public Paginated RequestAllPaginated(),其中T:class
{
var item=Request();
//从分页属性获取所有数据
如果(项!=null)
{
var i=分页的项目;
var数据=i.数据;
}
退货项目;
}

TK是T的一部分,这使得声明TK是多余的,我不能将RequestAllPaginated更改为RequestAllPaginated。