2008-10-07 6 views
1

Je transfère une application .NET 3.5 existante dans un plug-in pour Eclipse.Utilisation de UserControl de .NET en tant que contrôle intégré via COM

Je souhaite que mon UserControl personnalisé, écrit en C#, soit intégré à Eclipse; Je l'ai exporté avec succès en tant que COM Control, et cela fonctionne bien dans Eclipse Europa.

Dans Ganymede, il semble que le code de chargement OLE a changé et que ce qui a fonctionné à l'origine en Europe échoue.

L'erreur spécifique est lorsque Ganymede charge mon contrôle, il interroge IOleObject, reçoit l'interface appropriée, puis appelle SetClientSite, ce qui amène mon objet à perdre ses deux références et à devenir désaffecté (Ganymede va alors crash). Le même contrôle fonctionne parfaitement dans Visual C++ Designer et dans Europa.

Outre les attributs .NET et UserControl, existe-t-il une classe dont j'ai besoin d'hériter? Interfaces spécifiques que je dois mettre en œuvre, ou changement de comportement spécifique entre Europa/VC et Ganymede?

Merci!

Répondre

0

J'ai rencontré des problèmes similaires avec l'hébergement des contrôles .NET dans des environnements non .NET. Il y a eu des problèmes avec la façon dont certains de mes contrôles utilisateur ont été exposés à COM. En suivant l'exemple de ce site, j'ai résolu mon problème, peut-être que cela vous aidera aussi!

Link

1

Si quelqu'un est d'avoir encore ce problème, alors s'il vous plaît le signaler sur Connect. Une fois le rapport terminé, veuillez poster ici l'URL du rapport de bogue afin que les personnes qui lisent ce post puissent voter.

S'il s'agit toujours d'un bogue, il serait bon de le faire corriger par RTM de .NET 4.0, ou au moins SP1.

Questions connexes