在方法中我有这样一个对象:
Activator.CreateInstance(Type.GetType(TargetObject))
我需要将此对象传递给接受泛型类型的另一个类:
public class Repository<T> where T : class
{
}
如何将此对象用作T to Repository类?
答案 0 :(得分:1)
你可以用反射做到这一点,例如:
Type repoType = typeof(Repository<>).MakeGenericType(yourType);
但反思很快就会产生更多反思 - 因为你需要通过反思谈论repoType
。但 可以最大限度地减少这种影响:
对于第一个,我可能有一个IRepository
接口(非泛型),然后就是:
IRepository repo = (IRepository)Activator.CreateInstance(repoType);
repo.SomeNonGenericMethods(args); // etc
答案 1 :(得分:0)
那是不可能的。你已经在设计时定义了T.