Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.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# 我的commonLib.dll如何使用引用应用程序app.config?_C# - Fatal编程技术网

C# 我的commonLib.dll如何使用引用应用程序app.config?

C# 我的commonLib.dll如何使用引用应用程序app.config?,c#,C#,到目前为止,我有两个类,我想把它们放在我的公共dll中,logger和db。我将它们从我当前的项目转移到一个新的类库项目,并更改它们的名称空间等等。我遇到的问题是,我希望使用我的应用程序的应用程序配置(或我想要引用commonlib.dll的任何应用程序),但我不知道如何使用引用项目的应用程序配置。有什么办法吗?这是你的票。其中一个将采用可执行文件的路径,允许您打开指定应用程序的应用程序配置(即使是另一个应用程序;您可以使用此技术在使用Process.Start()启动另一个应用程序之前更改其配

到目前为止,我有两个类,我想把它们放在我的公共dll中,logger和db。我将它们从我当前的项目转移到一个新的类库项目,并更改它们的名称空间等等。我遇到的问题是,我希望使用我的应用程序的应用程序配置(或我想要引用commonlib.dll的任何应用程序),但我不知道如何使用引用项目的应用程序配置。有什么办法吗?

这是你的票。其中一个将采用可执行文件的路径,允许您打开指定应用程序的应用程序配置(即使是另一个应用程序;您可以使用此技术在使用Process.Start()启动另一个应用程序之前更改其配置)。另一个将打开指定用户级别(所有用户、当前漫游用户以及当前漫游和本地用户)的当前应用程序的app.config(即使您的库被多个应用程序使用)。通常,在处理实际的app.config时,您需要一个适用于所有用户的app.config;每个用户配置存储在每个用户的AppData文件夹中


还有最后一件事;除非库有自己的配置文件,否则ConfigurationManager属性(如AppSettings)将基于当前可执行文件的app.config进行填充。因此,它可以像使用这些属性一样简单。请记住,这些属性是只读的,并且在程序启动时只加载一次,因此,如果您在程序执行期间对配置进行了更改,希望立即生效,那么最好显式加载/保存配置文件。

ah ok,类似OpenExeConfiguration(System.Reflection.Assembly.GetCallingAssembly()的内容.Location)或GetEntryAssembly(),它是由shell或非托管代码调用以启动CLR的程序集。就像我说的,如果你自己的库有自己的app.config,你只需要指定可执行文件;否则,OpenExeConfiguration(ConfigurationUserLevel.None)应该可以。