【发布时间】:2016-02-01 15:13:42
【问题描述】:
我想要达到的目标:
Type type = typeof(Entity);
var result =_unitofwork.BaseRepositoryFor<type>.createEntity(entity);
我已经尝试了方法信息和更多示例,但最终无法正常工作。
CreateEntity/deleteEntity 所有后端的东西都是通用实现的,但我需要以某种方式在我的通用方法中添加类型。
什么工作正常:
MyDb _db= new MyDb();
private static T entity;
private static BaseRepositoryFor<T>_dynamic_class = new BaseRepository<T>(_db);
var result =_unitofwork.BaseRepositoryFor<T>.createEntity(entity);
但我需要在我的方法中键入对象而不是“T”。
重复的问题:我已经检查了那个重复的问题。但它实际上解决了我的问题,因为我有一些扩展方法来创建/删除/更新/获取,我需要在智能中获取这些方法的名称。
【问题讨论】:
-
您的问题有点不清楚,但您的代码 sn-p 的正确语法是
_unitofwork.BaseRepositoryFor<Entity>。如果您的方法也是泛型的,带有一个名为T的泛型参数,那么_unitofwork.BaseRepositoryFor<T>。 -
我的方法是通用的
并且我不能在我的方法中使用 因为用户请求将被接收为 Type type= typeof(something);我需要在我的通用方法中使用“类型” -
如果你的类型是T,你可以直接传下去
var result =_unitofwork.BaseRepositoryFor<T>.createEntity(entity); -
不,不幸的是我的类型不是 T