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