Com +后期绑定c#4.0

问题描述

| 在我的程序中,我使用以下方法动态创建Com +对象(后期绑定)
Type comObjectType = Type.GetTypeFromProgID(progId,true); 
object comObject = Activator.CreateInstance(comObjectType); 
然后使用反射调用其中一种方法
object result = comObjectType.InvokeMember(MethodToActivate,BindingFlags.InvokeMethod,null,comObjec,new object[] {....});
在.Net 1.1 / 2.0 / 3.5中效果很好 现在,我试图在为.Net 4.0编译的同一台计算机(Windows XP)上运行相同的代码,但是
Exception: Method \'System.__ComObject.{MethodName}\' not found. 
对于大多数Com +对象,我都有例外(并非所有对象)。 有人知道是什么问题吗? 为什么在FW 4.0环境中会出现异常? 我应该怎么做才能避免这种情况? 非常感谢, 丹尼尔 经过更多调查后,我发现有些Com +代理被创建为
System._ComObject
(我想是本地代理),而有些被创建为
System.Runtime.Remoting.Proxies._TransparentProxy
(我认为它们是.Net Com +对象)。方法调用对创建为
System._ComObject
的那些调用有效,而对于
System.Runtime.Remoting.Proxies._TransparentProxy
无效。 最有趣的事实是,在.Net 2.0中,所有对象都是以相同的方式创建的(
_ComObject
_TransparentProxy
),但是方法调用确实可以正常工作。 另一个有趣的事实是,我可以在使用reflecton的调试器中看到\“ missing \”方法
((System.EnterpriseServices.RemoteServicedComponentProxy)((((System.Runtime.Remoting.Proxies.__TransparentProxy)(ObjectToActivate)))._rp)).ProxiedType.GetMethods()
我想了一会儿可能是安全问题,但我以具有管理员权限的用户身份登录WindowsService来运行代码     

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)