Этот вопрос является продолжением ответа Марка Гравелла на мой вопрос Создать внепроцессный COM в C# /. Net?. Я выбрал предложенное им решение, но теперь занимаюсь другой проблемой.
Вот моя ситуация:
При создании экземпляра COM DataProvider из Matlab или VB Script срабатывает механизм COM +, и я могу проверить, что можно использовать один экземпляр DataProvider.
Проблема возникает, когда я пытаюсь получить доступ к управляемому экземпляру COM + из .Net. По сути, когда компонент COM основан на DLL .Net, даже при отложенной загрузке .Net всегда, кажется, находит DLL и создает экземпляр объекта оттуда, пропуская весь механизм COM. Это ожидается для выступлений, но в моем случае это не помогает.
Теперь вопрос: Можно ли создать экземпляр написанного COM-компонента .Net в приложении .Net используя механизм COM?
Обратите внимание, что следующий код не использует механизм COM:
Type type = Type.GetTypeFromProgID(progID);
return Activator.CreateInstance(type);





Загляните в этот ответ. Сначала необходимо добавить сборку в GAC, а затем создать приложение COM + с помощью утилиты regsvcs. В противном случае .Net вообще не заглядывает в каталог COM +:
"c:\Windows\Microsoft.NET\Framework\v4.0.30319\regsvcs.exe" MyObject.dll
"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools\gacutil.exe" /i MyObject.dll