我正在尝试将对象类型传递给方法。我正在为我的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操作,我需要在方法中知道我正在使用什么对象(但我现在尝试为每个对象类型创建一个方法)
由于
答案 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
}