0

我想使用以下代码获取 Microsoft.Office.Interop.Excel.Range 接口的属性列表:

using Excel = Microsoft.Office.Interop.Excel;
PropertyInfo[] info = typeof(Excel.Range).GetProperties();

但结果是一个空数组:System.Reflection.PropertyInfo[0]

我错过了什么吗?

4

1 回答 1

1

从 VS2010 开始,在导入 Office 主互操作程序集 (PIA) 时,包含类型定义的默认机制是将它们作为主程序集的一部分嵌入,而不是作为单独引用的库 (Dll)。此嵌入过程的一部分是从嵌入定义中删除未引用的类型成员。

在解决方案资源管理器中,展开引用节点并选择Interop.Microsoft.Office.Interop.Excel然后)右键单击)-> 显示属性。您应该看到如下内容:

属性视图 将“Embed Interop Types”更改为 false,验证“Copy Local”也已自动更改为 True。对“Interop.Microsoft.Office.Core”和“Interop.VBIDE”执行相同的操作。

现在,当您反映托管包装互操作类型时,您将获得完整的类型定义。

于 2017-02-26T15:00:30.883 回答