我有一个通用方法,我想向它发送一个从字符串变量中获取的类型。

我的通用方法的签名是:

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/

10-13 08:33