Unable to cast COM object of type 'System.__ComObject' to class type 的解决办法

正在开发一个自动提交表单的程序,里面用到了WebBrowser控件。开始用这个控件时真是有点慌也是好奇,因为我对能够实现自动提交表单很感兴趣,开始不知如何下手。查了资料,里面说了一堆东西COM如何如何,让我头疼,毕竟我这种从开始就是用.net的程序员大多数对COM里面的不深刻。还好吧,总算克服很多困难做出来一些了。但是又在发布的时候遇到困难。奇怪的是在开发环境是正常的,这很让人认为是客户机器上少装了什么组件。

我遇到的具体错误是:

Unable to cast COM object of type 'System.__ComObject' to class type

'mshtml.HTMLDocumentClass'. COM components that enter the CLR and do not support

IProvideClassInfo or that do not have any interop assembly registered will be wrapped in the

__ComObject type. Instances of this type cannot be cast to any other class; however they can

be cast to interfaces as long as the underlying COM component supports QueryInterface calls

for the IID of the interface.

 

这段说的太啰嗦了,俺们英文不太好,理解起来还挺费劲的。

其实就是说对于COM对象,不能转化为类类型使用,而是要转化为其所继承的接口使用,就OK了!

果然,我把HTMLDocumentClass换为HTMLDocument(这是一个接口,尽管它的命名没有符合MS的命名规范)一切都正常了。

但是我心中尚有疑问没有解决:为什么我的开发环境上没有这个错误呢!?相信我对这个问题还是没有深入的理解,

如果您有一些见解!非常欢迎留言!谢谢!

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值