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