C#将对象类型转换为尚未知的类类型

时间:2016-05-10 20:44:15

标签: c# casting

我只是重新引用了之前的帖子,因为我无法解决问题。 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)曾建议演员,早些时候欣赏他的帮助,但是他还要投射“对象”。输入特定的班级类型'如果尚未知道类类型,则无效。如果我尝试(键入)实例,它不起作用... 任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:2)

<{1}}未定义

DoSomething()。它在您的object上定义,依此类推。

您可以将其设为ExampleClass1对象并直接调用它:

dynamic

或者,通过反思调用它:

dynamic instance = Activator.CreateInstance(type, "connection_string_param");
instance.DoSomething();

但是,你应该重新考虑你的设计,因为这不是一个好主意......