c#泛型. ,以编程方式从读取字符串值中分配T?
发布时间:2020-12-16 00:05:47 所属栏目:百科 来源:网络整理
导读:我有两个类(即Customer和Employee)和一个通用存储库GenericRepository T哪里T:上课. 是否可以在从字符串中分配T的值时实例化新的GenericRepository实例? 像这样: string x = "Customer";var repository = new GenericRepositoryx(); (从而创建GenericRepo
我有两个类(即Customer和Employee)和一个通用存储库GenericRepository< T>哪里T:上课.
是否可以在从字符串中分配T的值时实例化新的GenericRepository实例? 像这样: string x = "Customer"; var repository = new GenericRepository<x>(); (从而创建GenericRepository类型的存储库实例< Customer>) 解决方法
是的,但这很尴尬.
string name = "MyNamespace.Customer"; Type targetType = Type.GetType(name); Type genericType = typeof(GenericRepository<>).MakeGenericType( targetType ); object instance = Activator.CreateInstance(genericType); 在linqpad中,instance.Dump(); : GenericRepository<Customer> UserQuery+GenericRepository`1[UserQuery+Customer] 编辑 您可以将CreateInstance结果分配给动态,而不必通过反射调用方法. dynamic instance = Activator.CreateInstance(genericType); instance.SomeInstanceMethod(someParameter); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |