Laden...

VSTO Nativ von einem .NET Addin auf ein anderes zugreifen

Erstellt von Marsti vor 11 Jahren Letzter Beitrag vor 11 Jahren 1.170 Views
M
Marsti Themenstarter:in
120 Beiträge seit 2009
vor 11 Jahren
VSTO Nativ von einem .NET Addin auf ein anderes zugreifen

Hallo,

die Sitation: Es gibt ein Application-Level Addin, welches eine Schnittstelle für VBA anbietet (per COM, also Implementierung gegen ein Interface). Das Addin ist in .NET implementiert. Soweit sogut.

Nun kommt ein weiteres Documemt-Level Addin hinzu, ebenfalls .NET, welches möglichst komplett in .NET (also ohne COM) und ohne Umwege direkt auf die Schnittstelle, und auch von der Schnittstelle zurückgegebene Objekte (public class die für VBA irrelevant und ohne Interface-Implementierung sind), zugreifen soll.
Diesem sind die Klassen des ersten Addins natürlich per Referenz bekannt.

Hier tut sich recht schnell ein Problem auf, da nunmal alles über COM gewrapped ist und dementsprechend vom ComObject-Typ ist und nur gegen Interfaces gecastet werden kann.

Egal wie ich suche... immer finde ich nur den eher allgemeinen Hinweis, man müsste per ComAddins.Item("NameDesApplicationLevelAddins").Object zugreifen. Ich möchte aber wie gesagt spätestens bei zurückgegebenen Objekten eben direkt auf das .NET-Objekt zugreifen, und zwar möglichst ohne Umwege.

Gelöschter Account
vor 11 Jahren

Dann wirst du auch ganz an COM vorbei kommunizieren müssen. (z.B. via Remoting)
Alternativ musst du eben die Instanz einer COM sichtbaren .NET Klasse auf der Object Eigenschaft deines Addins platzieren.

M
Marsti Themenstarter:in
120 Beiträge seit 2009
vor 11 Jahren

Danke; also leider tatsächlich so wie ich es "befürchet" hatte mit Umwegen.