我想使用以下代码获取 Microsoft.Office.Interop.Excel.Range 接口的属性列表:
using Excel = Microsoft.Office.Interop.Excel;
PropertyInfo[] info = typeof(Excel.Range).GetProperties();
但结果是一个空数组:System.Reflection.PropertyInfo[0]
我错过了什么吗?
我想使用以下代码获取 Microsoft.Office.Interop.Excel.Range 接口的属性列表:
using Excel = Microsoft.Office.Interop.Excel;
PropertyInfo[] info = typeof(Excel.Range).GetProperties();
但结果是一个空数组:System.Reflection.PropertyInfo[0]
我错过了什么吗?
从 VS2010 开始,在导入 Office 主互操作程序集 (PIA) 时,包含类型定义的默认机制是将它们作为主程序集的一部分嵌入,而不是作为单独引用的库 (Dll)。此嵌入过程的一部分是从嵌入定义中删除未引用的类型成员。
在解决方案资源管理器中,展开引用节点并选择Interop.Microsoft.Office.Interop.Excel
然后)右键单击)-> 显示属性。您应该看到如下内容:
将“Embed Interop Types”更改为 false,验证“Copy Local”也已自动更改为 True。对“Interop.Microsoft.Office.Core”和“Interop.VBIDE”执行相同的操作。
现在,当您反映托管包装互操作类型时,您将获得完整的类型定义。