Вызов управляемого компонента C # из неуправляемого кода C ++, как определить конфигурацию - PullRequest
0 голосов
/ 20 июня 2009

Я хочу вызвать компонент C # из неуправляемой службы c ++. Мне нужно установить элементы конфигурации, ожидаемые компонентом C #. Какое имя должно быть в конфигурации и где оно должно быть найдено.

например. parentfolder \ cplusplusservice.exe

anotherfolder \ csharp.dll

Мне нужен csharp.dll.config или его эквивалент.

Спасибо

Ответы [ 3 ]

0 голосов
/ 20 июня 2009

Файл .config должен называться так же, как имя приложения. Когда неуправляемый код сначала вызывает управляемый код, создается домен приложения, который контролирует, какой файл конфигурации загружается и откуда.

Вам потребуется вручную скопировать файл .config в выходной каталог и дать ему имя после имени приложения или создать пост-сборку, чтобы сделать это.

В основном те же правила, которые применяются к файлам .config для чисто управляемых приложений, применяются к неуправляемым приложениям, которые загружают управляемый код.

0 голосов
/ 20 июня 2009

Это зависит от того, как создается домен приложения, на котором размещен ваш управляемый код.

Например, если вы предоставляете управляемый код как COM, он будет загружен в домен AppDomain по умолчанию, а файл конфигурации будет находиться в том же каталоге, что и исполняемый файл (parentfolder \ cplusplusservice.exe.config в вашем случае) .

Если вы создаете домен приложения самостоятельно, вы можете контролировать, где находится файл конфигурации.

0 голосов
/ 20 июня 2009

В этой статье показано, как использовать файлы конфигурации с c #:

http://www.devasp.net/net/articles/display/679.html

В этой статье представлен обзор вызова управляемого компонента c # из неуправляемого c ++ и наоборот, а также некоторых вспомогательных классов:

http://www.codeproject.com/KB/mcpp/unmanaged_to_managed.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...