如何使用C#从DLL读取web.config?
假设我有一个名为dummyCode.sln的项目,现在当我编译该项目时,我会得到一个名为dummyCode.dll的dll 如何使用c#读取此DLL并获取web.config的信息 例如,如果我有这样一个web.config如何使用C#从DLL读取web.config?,c#,asp.net,asp.net-mvc,C#,Asp.net,Asp.net Mvc,假设我有一个名为dummyCode.sln的项目,现在当我编译该项目时,我会得到一个名为dummyCode.dll的dll 如何使用c#读取此DLL并获取web.config的信息 例如,如果我有这样一个web.config <configuration> <appSettings> <add key="webpages:Version" value="3.0.0.0" /> <add key="webpages:Enabled" va
<configuration>
<appSettings>
<add key="webpages:Version" value="3.0.0.0" />
<add key="webpages:Enabled" value="false" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
<add key="employeeDB" value="Data Source=servername;Initial Catalog=employee;Persist Security Info=True;User ID=userid;Password=password;"/>
</appSettings>
</configuration>
然后我想读取appsettings属性中的所有值,如何执行,是否可以执行?此Dll将在某些Exe或网站中使用。您需要将这些配置项添加到该Exe或网站的配置文件中 app.Config(用于Exe)和web.Config(用于网站) 完成后,您可以使用以下方法阅读这些内容:
string theValue = ConfigurationManager.AppSettings["KeyName"];
(名称空间:System.Configuration
)
另外,您还可以创建读取不同信息的方法:
示例:Int
public static int GetIntConfiguration(string keyName)
{
string value = ConfigurationManager.AppSettings[keyName] ?? "0";
int theValue = 0;
if (int.TryParse(value, out theValue))
{
return theValue;
}
return -1;
}
所以a-1告诉您配置中有一个无效值
类似地,您可以为其他类型创建方法
编辑:根据您的评论,如果需要打开自定义配置:
System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration("dllPath.dll");
string value = config.AppSettings.Settings["key"].Value;
如果是web.config,可以将第一行更改为:
System.Configuration.Configuration configWeb = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("");
此Dll将在某些Exe或网站中使用。您需要将这些配置项添加到该Exe或网站的配置文件中 app.Config(用于Exe)和web.Config(用于网站) 完成后,您可以使用以下方法阅读这些内容:
string theValue = ConfigurationManager.AppSettings["KeyName"];
(名称空间:System.Configuration
)
另外,您还可以创建读取不同信息的方法:
示例:Int
public static int GetIntConfiguration(string keyName)
{
string value = ConfigurationManager.AppSettings[keyName] ?? "0";
int theValue = 0;
if (int.TryParse(value, out theValue))
{
return theValue;
}
return -1;
}
所以a-1告诉您配置中有一个无效值
类似地,您可以为其他类型创建方法
编辑:根据您的评论,如果需要打开自定义配置:
System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration("dllPath.dll");
string value = config.AppSettings.Settings["key"].Value;
如果是web.config,可以将第一行更改为:
System.Configuration.Configuration configWeb = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("");
正如已经在评论中提到的,类库项目的编译DLL没有自己的
.config
文件。如果您在该项目中创建了app.config
或web.config
,则它不会作为编译到DLL中的内容的一部分包含在内。DLL仅包含.NET代码
这样做没有任何逻辑意义——设置文件是针对每个应用程序的,而不是针对每个项目的。否则,它们可能相互冲突,和/或不可调整以适应包含库的应用程序
另外,这一点以前已经讨论过,而且(可能在其他地方)。关于如何实现目标,这里有一些建议,但也有很多类似的讨论,关于为什么这不是一个好主意。正如前面的评论所提到的,类库项目的编译DLL没有自己的
.config
文件。如果您在该项目中创建了app.config
或web.config
,则它不会作为编译到DLL中的内容的一部分包含在内。DLL仅包含.NET代码
这样做没有任何逻辑意义——设置文件是针对每个应用程序的,而不是针对每个项目的。否则,它们可能相互冲突,和/或不可调整以适应包含库的应用程序
另外,这一点以前已经讨论过,而且(可能在其他地方)。关于如何实现目标,这里有一些建议,但也有很多类似的讨论,说明为什么这不是一个很好的主意。阅读Dll是什么意思?将dll加载到应用程序域,然后读取元数据?dll是一个类库-类库没有自己的配置文件,它们使用引用它们的应用程序的配置文件。读取dll是什么意思?将dll加载到应用程序域,然后读取元数据?dll是一个类库-类库没有自己的配置文件,它们使用引用它们的应用程序的配置文件。好的,当我编译我的解决方案文件时,我将得到一个dll,它将包含web.config中的所有文件,对吗?我想读取dll并获取web.config信息。我不想知道如何从应用程序中读取web.config。我想知道如何读取dll和dll中的web.config文件的信息。请参阅本文以了解更多详细信息。@LijinDurairaj dll没有配置文件。请看我的答案。好的,当我编译我的解决方案文件时,我会得到一个dll,它会包含所有的文件沿woth web.config,对吗?我想读取dll并获取web.config信息。我不想知道如何从应用程序中读取web.config。我想知道如何读取dll和dll中的web.config文件的信息。请参阅本文以了解更多详细信息。@LijinDurairaj dll没有配置文件。看看我的答案。