Type.GetProperties из Microsoft.Office.Interop.Excel.Range возвращает пустой массив
Я хочу получить список свойств интерфейса Microsoft.Office.Interop.Excel.Range, используя следующий код:
using Excel = Microsoft.Office.Interop.Excel;
PropertyInfo[] info = typeof(Excel.Range).GetProperties();
но результатом является пустой массив: System.Reflection.PropertyInfo[0]
Я что-то пропустил?
1 ответ
Начиная с VS2010, при импорте основных сборок взаимодействия Office (PIA) механизм по умолчанию для включения определений типов заключается в том, чтобы встраивать их как часть основной сборки, а не как библиотеки с отдельными ссылками (Dll). Частью этого процесса встраивания является удаление не связанных элементов типа из встроенного определения.
В обозревателе решений разверните узел Ссылки и выберите Interop.Microsoft.Office.Interop.Excel
а затем) щелкните правой кнопкой мыши)-> Показать свойства. Вы должны увидеть что-то вроде этого:
Измените "Embed Interop Types" на false, убедитесь, что "Copy Local" также автоматически изменилось на True. Сделайте то же самое для "Interop.Microsoft.Office.Core" и "Interop.VBIDE".
Теперь, когда вы отразите управляемые типы взаимодействия с оболочкой, вы получите полное определение типа.