Жизненный цикл сервера автоматизации.NET, названного от Excel по COM

Как предмет говорит, я записал класс C#, скажем Тест, затем скомпилировал его как DLL и выставил его Excel как сервер автоматизации COM. Теперь, можно назвать методы того класса в Формулах Excel или непосредственно или через функцию VBA, которая саму называет их под капотом. То, что происходит во втором случае, относительно прозрачно (Вы написали код!), в то время как в первом случае я принимаю, Тестовый экземпляр прозрачно инстанцируют и затем используют (он имеет к тому, так как выставленные методы не и - от того, что я считал - не может быть статичным), но точно когда и как неясно. Таким образом мой вопрос: каков точный жизненный цикл сервера автоматизации, названного в этой установке и где это документируется?

Вспомогательный вопрос состоит в том, существует ли способ выполнить и прямые вызовы в формулах и вызовы через использование VBA единственный одноэлементный экземпляр Теста? Я думаю, что уже знаю, как заставить все процедуры VBA использовать единственный Тестовый экземпляр, но несмотря на это второй создается каждый раз, когда Метод тестирования называют непосредственно в формуле.

Наконец, если тот Тестовый класс содержит ресурсы на уровне класса (т.е. статические ресурсы), когда и как необходимо избавиться от них? Снова, это вызывает вопрос о точно, когда Тестовые классы создаются и уничтожаются .NET/COM INTEROP.

Точность: сервисом является DLL, не приложение, и Excel должен быть единственной вещью с помощью него, хотя могла бы быть больше чем одна копия открытой электронной таблицы. Это - Excel 2007.

7
задан olefevre 11 July 2010 в 19:49
поделиться