【发布时间】:2012-03-22 23:30:25
【问题描述】:
我可以在本地创建 COM 对象
var infsrv = new InfoServ.TInfoServerClass(); //COM object
infsrv.RunBsScript(bssScriptName, strOfParam); //calling method
但我需要在服务器上创建 COM 对象,所以代码是:
var myGuid = new Guid("00C4261D-0B2B-4230-A2CA-A9F4F2A46452");
var myType = Type.GetTypeFromCLSID(myGuid, servername);
InfoServ.TInfoServerClass infsrv = (InfoServ.TInfoServerClass)Activator.CreateInstance(myType);
infsrv.RunBsScript(bssScriptName, strOfParam);
但现在它说:
无法将“System.__ComObject”类型的 COM 对象转换为类类型 'InfoServ.TInfoServerClass'。进入 CLR 并执行的 COM 组件 不支持 IProvideClassInfo 或没有任何互操作程序集 注册将被包装在 __ComObject 类型中。这方面的事例 类型不能转换为任何其他类;但是它们可以转换为 只要底层 COM 组件支持的接口 QueryInterface 调用接口的 IID。
我该怎么办?
【问题讨论】: