尝试动态创建对象的实例

时间:2015-10-29 10:56:44

标签: c# oop reflection

获取以下错误...

  

错误1无法隐式转换类型'对象'至   ' CSV_OOP_Convert.FileConverter&#39 ;.存在显式转换(是   你错过了一个   cast?)\ server \ UserShares \ DBell \ VSC \ CSV_OOP_Convert \ CSV_OOP_Convert \ Form1.cs 44 39 CSV_OOP_Convert

String className = cmbConversionAlgorithm.Text;
string namespaceName = "CSV_OOP_Convert";

FileConverter myObj =Activator.CreateInstance(Type.GetType(namespaceName + "." + className));
ConvertFile(myObj);

cmbConversionAlgorithm包含我想要创建实例的类的正确名称。

我正常创建时效果很好。

CSV_OOP_Convert.TFConverter tfc = new CSV_OOP_Convert.TFConverter();

3 个答案:

答案 0 :(得分:2)

Activator.CreateInstance返回SELECT id , LISTAGG((alphabet)|| ',' ORDER BY id) (VARCHAR(1000)) alphabet_list from table group by id ; 类型的对象,因此它是一种完全非特定的类型。为了将其分配给更具体类型的变量,您需要进行显式类型转换:

object

答案 1 :(得分:1)

Activator返回一个Object

尝试这样的事情:

String className = cmbConversionAlgorithm.Text;
string namespaceName = "CSV_OOP_Convert";

Object myObj =Activator.CreateInstance(Type.GetType(namespaceName + "." + className));

ConvertFile((FileConverter)myObj);

答案 2 :(得分:1)

将结果转换为FileConverter类

Select table2.page,cnt(table2.page) 
                          from table1 inner join table2 
                        On table1.Page=table2.Page group by table2.page