从非托管C++代码调用托管c#组件,我如何定义配置

问题描述:

我想从非托管C++服务调用C#组件。我需要设置C#组件预期的配置项。应该配置什么名字以及它应该放在哪里。从非托管C++代码调用托管c#组件,我如何定义配置

例如。 parentfolder \ cplusplusservice.exe

anotherfolder \ csharp.dll

我需要csharp.dll.config或同等学历。

感谢,

+0

你想修改.config文件,还是实际从托管的DLL实例化对象? – heavyd 2009-06-20 04:52:40

的的.config文件需要与应用程序名称相同。当非托管代码首先调用托管代码时,将创建一个AppDomain,该AppDomain控制哪个配置文件已加载并从哪里启动。

您将需要手动将.config文件复制到输出目录并将其命名为应用程序名称或创建后期构建。

基本上适用于.config文件需要用于纯托管应用程序的相同规则适用于加载托管代码的非托管应用程序。

本文介绍如何使用配置文件和C#:

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

本文提供的呼吁设法从非托管C++,反之亦然,C#组件的概述,以及一些辅助类:

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

这取决于如何创建托管托管代码的AppDomain。例如,如果您将托管代码作为COM公开,它将被加载到默认AppDomain中,并且配置文件将与可执行文件位于同一目录中(您的案例中的parentfolder \ cplusplusservice.exe.config )。

如果您自己创建AppDomain,则可以控制配置文件的位置。