C# - 在方法参数中传递对象类型

时间:2011-04-01 08:20:42

标签: c# inheritance

我正在尝试将对象类型传递给方法。我正在为我的CRUDRepository执行此操作,这是由其他存储库继承的,但我无法弄清楚如何知道我正在处理的类型。

例如:

    public PageOf<Entity> GetPageOfEntity(int pageNumber, int pageSize)
    {
    // Here i need to work with the entity type to make calls to database  
    }

实体是由其他实体(用户,产品等)继承的对象,此方法返回分页结果。我这样做是为了避免为每个实体创建 GetPageOf 方法。

将要在分页结果中处理的对象类型传递给方法的正确方法是什么?

修改

以下是实体

的示例
     public abstract class Entity 
     {
     public virtual long Id { get; set; }
     public virtual DateTime Created { get; set; }
     }

用户对象:

     public class User : Entity
     {
     public string FirstName { get; set; }
     }

由于我正在尝试编写单个类来处理一些crud操作,我需要在方法中知道我正在使用什么对象(但我现在尝试为每个对象类型创建一个方法)

由于

2 个答案:

答案 0 :(得分:5)

使方法通用:

public PageOf<TEntity> GetPageOfEntity<TEntity>(int pageNumber, int pageSize)
    where TEntity : Entity
{
    Type entityType = typeof(TEntity);
    ...
}

答案 1 :(得分:0)

我不确定,我理解你的问题,但你不能只使用通用参数吗?

public PageOf<Entity> GetPageOfEntity<TEntity>(int pageNumber, int pageSize) 
    where TEntity : Entity
{
// Here i need to work with the entity type to make calls to database  
}