C#等效的PHP动态方法调用

Kev*_*ark 2 php c# reflection

在PHP中,我可以尝试调用对象上可能存在的任何方法,如下所示:

$object->{$method}();

$object我们的PHP对象在哪里,是$method我们想要调用的方法的名称.我可以用这种方式动态调用任何方法.

有没有C#等同于此?或者我只是"做错了"?我有一个通过Reflection加载的插件/模块,我想调用一个未在接口中定义的方法.

谢谢!

Dar*_*rov 6

与PHP相反,C#是一种静态类型语言,这意味着需要在编译时知道类型.虽然这种方法已经在C#4.0中引入.这是动态关键字.它允许您声明一个动态类型的变量,并在其上调用您喜欢的任何方法,编译器不会抗议.解决方案将在运行时完成:

dynamic obj = FetchInstanceFromSomewhere();
obj.Method();
Run Code Online (Sandbox Code Playgroud)

另一种更经典的方法是使用反射,但这很快就会变成一场噩梦.