Microsoft.Office.Interop.Excel.Range的Type.GetProperties返回空数组

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

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

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

我错过了什么吗?

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

在解决scheme资源pipe理器中,展开“引用”节点,然后select“ Interop.Microsoft.Office.Interop.Excel ,然后右键单击) – >“显示属性”。 你应该看到这样的东西:

属性视图 将“embedded互操作types”更改为false,确认“本地复制”也已自动更改为True。 对“Interop.Microsoft.Office.Core”和“Interop.VBIDE”也一样。

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