2009-07-07 6 views
3

У меня есть .Net класс, который вызывает COM-объект C++, который в свою очередь вызывает другой .Net-класс в COM. Я обнаружил, что два класса .Net находятся в отдельных областях приложения (что вызывает некоторые проблемы с log4net). Обратите внимание, что они находятся в одном и том же потоке.appdomains in COM interop

Почему это? Есть ли способ обеспечить, чтобы они были в одном и том же домене?

+0

В каком контексте? IIS, настольное приложение? –

+0

настольное приложение –

ответ

0

Вызов класса .NET, который отображается как COM, требует маршалинга данных. AppDomains отделяет доступ к данным. Когда вы вызываете COM-компонент (независимо от того, что он является .NET-приложением), вы должны сделать его в песочнице. В .NET песочница использует разные AppDomain.