【发布时间】:2012-10-07 00:17:30
【问题描述】:
我无法弄清楚这段代码是怎么回事。 "command" = Park,接口中存在 Park 方法。然而,“方法”只是等于 null,所以当我点击调用时它会引发异常。调试器启动,因此我能够确保一切正常。为什么方法没有设置?
范围对象已定义。它是一个 com 对象。我扩展了范围对象的动态视图,它显示的只是属性或其他东西(蓝色 3d 框,不是手和纸),没有方法。那是问题吗?但是为什么,因为我指的是 ITelescope 并且在我尝试调用未设置的方法之前不对范围做任何事情。
我从this question 获得了激活码。
ITelescope scope = (ITelescope)Activator.CreateInstance(Type.GetTypeFromProgID(scopeProgID));
var method = typeof(ITelescope).GetMethod(command);
method.Invoke( scope, new object[0]{ } );
【问题讨论】:
-
如果在
ITelescope接口中定义了名为"Park"的方法,您的代码应该会找到它。请注意,名称区分大小写,并确保名称周围没有前导或尾随空格。
标签: c#-4.0 dynamic system.reflection