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

时间:2017-02-20 20:43:14

标签: c# excel reflection interface getproperties

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

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

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

我错过了什么吗?

1 个答案:

答案 0 :(得分:1)

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

在“解决方案资源管理器”中,展开“引用”节点并选择“{1}}然后”右键单击) - >“显示属性”。你应该看到这样的东西:

Property View 改变"嵌入互操作类型"为false,验证"复制本地"也已自动更改为True。为#34; Interop.Microsoft.Office.Core"做同样的事情。和" Interop.VBIDE"。

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