我有一个通用方法,我想向它发送一个从字符串变量中获取的类型。
我的通用方法的签名是:
public ICollection<TEntity> agregarItems<TEntity>(ComboBox cb) where TEntity : new()
我想这样做:
Type tipo = Type.GetType("MyNamespace." + cb.Name);
cliente.GetType().GetProperty(cb.Name).SetValue(cliente,
agregarItems<tipo>(cb), null);
其中cb是ComboBox对象,cliente是类的实例。
cb.Name可以是“ Phone”,并且MyNamespace中已经存在Phone类。
由于未正式定义tipo,因此出现以下错误:
找不到类型或名称空间名称“ tipo”(是否缺少using指令或程序集引用?)
我需要一种变通办法,让我将未正式定义的类型发送给泛型方法。
最佳答案
您要做的就是使用您在此处介绍的方式(使用Activator
)获得的类型创建实例:
How to dynamically create generic C# object using reflection?
关于c# - 将类型从字符串变量发送到通用方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14723838/