использование [interopformproperty] предотвращает генерацию файла wrapper.cs - PullRequest
0 голосов
/ 14 февраля 2011

У меня проблема / вопрос с некоторыми базовыми вещами. У меня установлен interoptoolkit v2.1, и я пытаюсь создать эту форму в версии 2008 с C #, чтобы к этой форме можно было получить доступ из приложения vb6.

Я пытаюсь добавить публичное свойство в эту форму, поэтому я думаю, что я должен добавить это [interopformproperty] над собственностью.

Но когда я делаю это и пытаюсь сгенерировать оболочку, используя опцию в меню Сервис, она не генерирует оболочку.

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

Большое спасибо заранее. Приветствия.

Ответы [ 2 ]

0 голосов
/ 15 февраля 2011

Я всегда отвечаю на свой вопрос: D Я делаю это только на случай, если кто-то еще получит это.

Перейдите по этой ссылке и загрузите второй файл.

C_Interop_Form.aspx "> http://www.codeproject.com/KB/dotnet/VB6_-C_Interop_Form.aspx

Предполагается, что вы используете vs2008. Получите файл dll и файл add in.

и скопируйте этот файл в Мои документы -> visual studio 2008> addins

Откройте файл надстройки с помощью блокнота и измените номер версии 8.0 -> *

Теперь сохраните это. и перезагрузите vs2008. Он должен генерировать файл оболочки в C # вместо vb.

P.S, чтение комментария к посту всегда помогает: D

0 голосов
/ 14 февраля 2011

Если видимый тип реализует взаимодействие, все открытые методы, свойства становятся видимыми при условии, что типы, используемые в их сигнатурах, являются видимыми. Если видимый тип com реализует несколько интерфейсов, первый (в определении класса) используется как интерфейс com. Это поведение можно изменить с помощью ComDefaultInterfaceAttibute.

Если интерфейс не реализован, все открытые свойства (которые предоставляют видимый тип) автоматически становятся видимыми. regasm автоматически генерирует com-интерфейс, содержащий все открытые методы / свойства.

"Генерация оболочки", как вы говорите ... Я не понимаю этого. После компиляции сборки с видимыми типами зарегистрируйте ее с помощью regasm (если опция в свойствах проекта «Регистрация для взаимодействия COM не активна).

...