Использование .NET UserControl в качестве встроенного элемента управления через COM - PullRequest
1 голос
/ 07 октября 2008

Я портирую существующее приложение .NET 3.5 в плагин для Eclipse.

Я хочу, чтобы мой собственный UserControl, написанный на C #, был встроен в Eclipse; Я успешно экспортировал его как элемент управления COM, и он хорошо работает в Eclipse Europa.

В Ганимеде, похоже, изменился код загрузки OLE, и то, что изначально работало в Европе, не работает.

Конкретной ошибкой является то, что когда Ganymede загружает мой элемент управления, он запрашивает IOleObject, получает надлежащий интерфейс и затем вызывает SetClientSite для него, что приводит к тому, что мой объект теряет обе свои ссылки и освобождается (Ganymede будет аварийно завершать работу ). Точно такой же элемент управления работает безупречно как в Visual C ++, так и в Europa.

Помимо явных атрибутов .NET и UserControl, есть ли какой-то конкретный класс, от которого мне нужно наследовать? Конкретные интерфейсы, которые мне нужно реализовать, или конкретное изменение поведения между Europa / VC и Ganymede?

Спасибо!

Ответы [ 2 ]

1 голос
/ 04 июля 2009

Если у кого-то все еще есть эта проблема, пожалуйста, сообщите об этом на Connect . По завершении отчета, пожалуйста, опубликуйте URL отчета об ошибке здесь, чтобы люди, которые читают это сообщение, могли проголосовать за него.

Если это все еще ошибка, было бы неплохо исправить ее с помощью RTM .NET 4.0 или, по крайней мере, SP1.

0 голосов
/ 19 декабря 2008

Я сталкивался с похожими проблемами с размещением элементов управления .NET в не .NET средах. Были проблемы с тем, как некоторые из моих пользовательских элементов управления подвергались воздействию COM.

Следуя примеру на этом сайте, решил мою проблему, возможно, она вам тоже поможет!

Ссылка

...