Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 包括类库中的配置文件_C#_.net_Configuration - Fatal编程技术网

C# 包括类库中的配置文件

C# 包括类库中的配置文件,c#,.net,configuration,C#,.net,Configuration,在VS2008中,我的C#类库中有一个名为MyLibrary.config的配置文件 我创建了另一个项目,比如一个简单的控制台应用程序,通过“浏览”类库项目的bin目录中的MyLibrary.dll添加引用,当我编译时,MyLibrary.config不包括在控制台应用程序输出的bin目录中 如何设置它,以便在引用dll时包含它 Cheers使用配置文件的标准方法是使其与可执行文件相同,添加对dll的引用将不包括其配置文件,并且据我所知,dll不会自行加载配置文件,而是依赖引用它们的可执行文件。

在VS2008中,我的C#类库中有一个名为MyLibrary.config的配置文件

我创建了另一个项目,比如一个简单的控制台应用程序,通过“浏览”类库项目的bin目录中的MyLibrary.dll添加引用,当我编译时,MyLibrary.config不包括在控制台应用程序输出的bin目录中

如何设置它,以便在引用dll时包含它


Cheers

使用配置文件的标准方法是使其与可执行文件相同,添加对dll的引用将不包括其配置文件,并且据我所知,dll不会自行加载配置文件,而是依赖引用它们的可执行文件。

您不能。控制台应用程序希望找到前缀与控制台应用程序名称相同的配置文件(
MyConsoleApplication.exe
->
MyConsoleApplication.exe.config

在某些情况下,您可以使用上的
file
属性共享配置文件:


除了不能做到这一点之外,我还建议不要使用这种方法

<>而不是尝试将您的设置紧密耦合到DLL库,而是考虑更多的“依赖注入”类型的方法——即,将值依赖性(即设置)传递给正在调用的代码(即库)。 这样做的好处是,您不必使用单一的存储设置方法。然后可以使用数据库、不同的配置文件格式。。。甚至是硬编码。它还可以通过删除外部文件依赖关系来简化单元测试

有不同的方法来实现这一点,但是一个例子是将配置设置传递给使用它们的类的构造函数

<appSettings
    file="path">
</appSettings>