Я написал общую надстройку Office для C # и .NET 2.0. Он использует один и тот же COM Shim для всех офисных приложений. В настоящее время каждый экземпляр создает свой собственный экземпляр моего класса - они не знают, что надстройка запущена в другом приложении.
Можно ли сделать так, чтобы, например, при запуске надстройки Word она могла обнаружить, что надстройка Excel уже запущена? Могут ли они общаться друг с другом?
Допустим, моя dll называется Addin.dll. Когда, например, Word открывается, он запускает код в Addin.dll, который реализует интерфейс IExtensibility, и создает класс, назовем его WordAddin. Когда открывается Excel, он также запускает код в Addin.dll и создает экземпляр ExcelAddin. Теперь предположим, что Word работает, а WordAddin существует. Когда Excel открывается, Addin.dll загружается в другой домен приложений. Он не знает, что WordAddin существует. Я хочу, чтобы ExcelAddin знал, что WordAddin существует, и мог общаться с ним, возможно, через родительский класс, который создает оба.
Кто-нибудь знает, как это сделать?