我想从非托管 C++ 服务调用 C# 组件。我需要设置 C# 组件期望的配置项。应该配置什么名称以及它应该位于哪里。
例如。父文件夹\cplusplusservice.exe
另一个文件夹\csharp.dll
我需要 csharp.dll.config 或它的等价物。
谢谢,
本文展示了如何在 c# 中使用配置文件:
http://www.devasp.net/net/articles/display/679.html
本文概述了从非托管 c++ 调用托管 c# 组件(反之亦然),以及一些帮助类:
http://www.codeproject.com/KB/mcpp/unmanaged_to_managed.aspx
.config 文件的名称需要与应用程序的名称相同。当非托管代码首次调用托管代码时,会创建一个 AppDomain,该 AppDomain 控制加载哪个配置文件以及从何处加载。
您需要手动将 .config 文件复制到输出目录并以应用程序名称命名,或者创建一个后期构建来执行此操作。
基本上,适用于纯托管应用程序的 .config 文件所在位置的相同规则适用于加载托管代码的非托管应用程序。
这取决于托管您的托管代码的 AppDomain 是如何创建的。
例如,如果您将托管代码公开为 COM,它将被加载到默认的 AppDomain 中,并且配置文件将与可执行文件位于同一目录中(在您的情况下为 parentfolder\cplusplusservice.exe.config)。
如果您自己创建 AppDomain,您可以控制配置文件的位置。