Я пытаюсь реализовать COM-объяснение без регистрации в моем коде (не могу использовать COM без регистрации через манифест приложения, так как это работает только на уровне exe): я создаю статический класс, который загружает DLL библиотеки COM, вызывает DllGetClassObject, затем IClassFactory :: CreateInstance ().
Работает просто отлично в точку. Детали реализации на http://www.dimastr.com/redemption/security.htm#redemptionloader
Но если я создаю экземпляр своего COM-объекта из нескольких потоков (например, сначала в основном потоке, а затем во вторичном), .Net начинает запрашивать у моих объектов IMarshal, который я не реализую.
Если библиотека COM зарегистрирована в реестре, все работает нормально. Если библиотека не зарегистрирована в реестре (в этом и заключается весь смысл), .Net запрашивает IMarshal.
Есть ли способ получить реализацию IMarshal по умолчанию, которую COM использует внутренне? Или предотвратить его сбой, если мой объект не реализует IMarshal?
Спасибо!