在我们的 .NET 项目中使用引用时,我看到了类似的问题mshtml.dll
,但与此特定情况无关。我怀疑这个问题可能与这个线程(.net document write with mshtml)中所说的有关在我的案例中缺少所有相关属性/属性的 coclass 有某种关系。这里的细节是我mshtml.HTMLInputElement
在解析对象时使用的一组属性/属性WebBrowser.Document
:
if (domElement is HTMLInputElement)
{
HTMLInputElement inputElement = (HTMLInputElement)domElement;
if (inputElement.name == null || inputElement.name.Trim() == string.Empty ||
inputElement.name.Contains("/") || inputElement.name.Contains("="))
{
...
}
}
以上在开发PC(VS2008 3.5 SP1)下工作正常,除了name
属性之外,其他一些属性也被成功调用type
,等等,但是当应用程序安装在具有所有必需框架部件的Windows 7下时,我得到COMException
:
===============
System.Runtime.InteropServices.COMException 越过了本机/托管边界 Message=Member not found。(来自 HRESULT 的异常:0x80020003 (DISP_E_MEMBERNOTFOUND))Source=mscorlib
ErrorCode=-2147352573 StackTrace:在 System.RuntimeType.ForwardCallToInvokeMember(字符串成员名称,BindingFlags 标志,对象目标,Int32 [] aWrapperTypes,MessageData 和 msgData)在 mshtml.DispHTMLInputElement.get_name( )
=======================
name
对,等属性的调用type
现在都不起作用。总是一样Interop.COMException
的被抛出。在我看来,这与使用 mshtml 编写的 .net 文档中解释的问题相同。
有谁知道这个问题的有效解决方法?