铸造系统.__ComObject到已知类型反射

本文关键字:类型 反射 ComObject 系统 | 更新日期: 2023-09-27 18:08:34

我试图使用反射创建一个Excel文件。原因是,应用程序将在许多机器上运行,其中一些机器可能安装了excel,也可能没有安装。我决定嵌入"Microsoft.Office.Interop.Excel.dll"并通过反射生成excel电子表格。
我试图模仿的代码是:

Dim app as new Excel.Application
Dim wb as Excel.Workbook = app.Workbooks.Add(1)
Dim ws as Excel.Worksheet = wb.Worksheets(1)

目前一切都很好,除了当我检索到工作表实例的引用返回为"System.__ComObject"。

有没有办法让"System。"__ComObject"到"工作表类型"?

我知道底层的"系统。__ComObject"的类型是"工作表",因为在对象上搜索属性后抛出的异常给我错误,表明它实际上是一个"工作表"类型。例如:"类型工作表不显示特定属性,……"
感谢任何帮助,
由于

铸造系统.__ComObject到已知类型反射

您需要将__ComObject放在运行时可调用的包装器RCW中。你可以看看这个:CreateWrapperOfType