我只是重新引用了之前的帖子,因为我无法解决问题。 C# convert string to class that has a constructor with string parameter
我有一个循环,我试图将给定的字符串转换为类类型并实例化它们。这些类具有带字符串类型参数的构造函数,该参数是数据库的连接字符串。
到目前为止似乎没问题。 ExampleClass1,ExampleClass2,ExampleClass3 ...
Type type = Type.GetType("ExampleClass1");
object instance = Activator.CreateInstance(type, "connection_string_param");
然而,当我尝试通过instance.DoSomething()访问类方法时,我收到一个错误 - 对象不包含DoSomething的定义....当我以常规方式实例化类时,我可以看到类方法。阿图罗·门查卡(Arturo Menchaca)曾建议演员,早些时候欣赏他的帮助,但是他还要投射“对象”。输入特定的班级类型'如果尚未知道类类型,则无效。如果我尝试(键入)实例,它不起作用... 任何帮助表示赞赏。
答案 0 :(得分:2)
DoSomething()
。它在您的object
上定义,依此类推。
您可以将其设为ExampleClass1
对象并直接调用它:
dynamic
或者,通过反思调用它:
dynamic instance = Activator.CreateInstance(type, "connection_string_param");
instance.DoSomething();
但是,你应该重新考虑你的设计,因为这不是一个好主意......