Система кастинга .__ ComObject для известного типа отражения - PullRequest
0 голосов
/ 15 сентября 2011

Я пытаюсь создать файл Excel, используя отражение. Причина в том, что приложение будет работать на многих машинах, на некоторых из которых может быть установлен Excel или нет. Я решил встроить «Microsoft.Office.Interop.Excel.dll» и с помощью отражения сгенерировал электронную таблицу Excel.
Код, который я пытаюсь напомнить:

Dim app as new Excel.Application
Dim wb as Excel.Workbook = app.Workbooks.Add(1)
Dim ws as Excel.Worksheet = wb.Worksheets(1)

На данный момент все в порядке, за исключением случаев, когда я получаю ссылку на экземпляр Worksheet, который возвращается как "System .__ ComObject".

Можно ли как-нибудь преобразовать "System .__ ComObject" в "тип рабочего листа"?

Я знаю, что базовый «System .__ ComObject» имеет тип «Рабочий лист», так как исключения, генерируемые после поиска свойств объекта, дают мне ошибки, указывающие, что это на самом деле тип «Рабочий лист». Например: «Тип рабочего листа не представляет определенного свойства, ...»
Любая помощь приветствуется,
Спасибо

1 Ответ

1 голос
/ 15 сентября 2011

Вам нужно поместить __ComObject в вызываемую оболочку времени выполнения, RCW. Вы можете посмотреть на это: CreateWrapperOfType

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...