我在Asp.net Razor MVC3工作。我创建了一个App_Code文件夹,并创建了一个类,我希望从web.config中读取连接字符串,并使用此类处理数据库。我在这个app_code类中写了System.Configuration
,但它没有显示ConfigurationManager
类的Configuration
。
它显示像这样
而不是如果我在任何控制器中写相同的行,那么它将显示System.Configuration.ConfigurationManager
而在控制器中我可以从web.config读取连接字符串,但在app_code中我不能。
请给我解决方法如何在app_code类中读取连接字符串?
答案 0 :(得分:10)
包含对System.Web.Configuration的引用:
using System.Web.Configuration;
然后,在您的代码中,像这样访问它:
WebConfigurationManager.ConnectionStrings["ConnectionStringName"].ConnectionString;
示例类:
using System.Web.Configuration;
namespace MyWebApp.App_Code
{
public class TestClass
{
public void TestMethod()
{
var connStr = WebConfigurationManager.ConnectionStrings["ConnectionStringName"].ConnectionString;
}
}
}
答案 1 :(得分:0)
如果收到有关“ConfigurationManager在当前上下文中不存在”的错误,则除了在控制器中包含using System.Configuration
语句外,还需要安装dll程序集。
您可以在Nuget图库https://www.nuget.org/packages/System.Configuration.ConfigurationManager/中找到它,或者在Visual Studio中添加一个程序集引用。
之后,你可以写string MyString = ConfigurationManager.ConnectionStrings["ConnectionStringName"].ConnectionString;
(注意那段代码末尾的单数形式)。
或者,如果您还没有为System.Configuration编写using语句,那么您将编写相同的内容,但前缀为string MyString = System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionStringName"].ConnectionString;