C#通过反射失去实体类的Type,如果将Type传入泛型方法

C#通过反射得到实体类的Type,如果将Type传入泛型方法
本帖最后由 anbs01 于 2015-09-25 14:39:49 编辑
我有个实体类User,和一个泛型方法GetEntity<T>(),我只知道实体类的程序集frame.dll文件,还已知实体类的类名称(一个类名的字符串),我需要将这个实体类当作泛型T传入泛型方法GetEntity<T>()
目前我通过反射dll得到实体类的Type,但是无法将Type当作T传给泛型方法。

//实体类
    public partial class User
    {
        public int ID { get; set; }
        public string UserName { get; set; }
        public string LoginName { get; set; }
        public string Password { get; set; }
    }


           string EntityName="User";    //已知实体类名称
            Assembly ass = Assembly.LoadFrom(AppDomain.CurrentDomain.BaseDirectory + "bin\\frame.dll");       //加载dll
            Type t = ass.GetType("frame.Models." + EntityName);       //获取类型
            object model= Activator.CreateInstance(t);     //创建实例
            //User user=GetEntity<User>(1);//我想实现这句话的效果


        public T GetEntity<T>(int id) where T : class
        {
            return repository.Find<T>(id);
        }

------解决思路----------------------
dynamic obj = GetEntity<Object>(1);

这样写吧
------解决思路----------------------
楼主对泛型的理解有问题,感觉上是把一个类型传入泛型,其实是把两个类型组合成一个新的类型,
而新的类型是必须用源代码写过编译才有的,不是在运行过程中动态组合而成的.
这是我的理解.