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".

Теперь, когда вы отразите управляемые типы взаимодействия с оболочкой, вы получите полное определение типа.

Другие вопросы по тегам