ASP NET自定义配置文件设置(以及修改Entity Framework数据库连接为自定义字符串)

更新时间:2023-09-13 11:12:01 阅读量: 教学研究 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

ASP.NET 自定义配置文件设置

在ASP.NET开发的过程中,我们经常会遇到在开发、测试、发布部署等不同的环境下使用不同的连接字符串,WebAPI的连接。为了避免频频复杂的修改各个配置,因此用到了自定义配置文件设置。

此篇文章使用的自定义配置文件方法为:web.config 增加自定义Section节,相关配置全部放到webconfig。

一、 配置Web.config文件。

1.0 首先需要在configuration节点下的configSections节点中进行注册,如下:

注:CustomConfig.Configrationner.ConnectionStringSection指的是:此section 可解析的实体所存放的【完整的命名空间.类名】, CustomConfig指的是:此section所在的程序集(dll)的名称。

2.0 然后将ConnectionStringSection节点配置在configuration节点下即可,具体如下:

二、 配置调用ConfigrationSection的文件。

1.0 首先要访问这个自定义节点,需要通过类来配置,我们得首先定义一个父节点类,父节点类包含子节点集合,如下:

namespace CustomConfig.Configrationner {

publicclassConnectionStringSection : ConfigurationSection {

[ConfigurationProperty(\)] publicConnectionStringCollection Publish {

get { return (ConnectionStringCollection)this[\]; } }

[ConfigurationProperty(\)] publicConnectionStringCollection Develop {

get { return (ConnectionStringCollection)this[\]; } }

[ConfigurationProperty(\)] publicConnectionStringCollection Test {

get { return (ConnectionStringCollection)this[\]; } } } }

2.0 子节点集合再包含子节点元素,如下

namespace CustomConfig.Configrationner {

publicclassConnectionStringCollection : ConfigurationElementCollection {

protectedoverrideConfigurationElement CreateNewElement() {

returnnewNameValueSettings(); }

protectedoverrideobject GetElementKey(ConfigurationElement element) {

return ((NameValueSettings)element).Name; }

//写一个索引器,方便的访问该集合中的元素。 //如果不写,则只有foreach来访问。 publicNameValueSettingsthis[int index] { get

{

returnthis.BaseGet(index) asNameValueSettings; } }

publicnewNameValueSettingsthis[string key] { get

{

returnthis.BaseGet(key) asNameValueSettings; } } } }

3.0 定义子节点元素类,如下

namespace CustomConfig.Configrationner {

///

///连接字符串类 ///

publicclassNameValueSettings : ConfigurationElement {

[ConfigurationProperty(\, IsRequired = true)] publicstring Name {

get { returnthis[\].ToString(); } set { this[\] = value; } }

[ConfigurationProperty(\, IsRequired = true)] publicstring ConnectionString {

get { returnthis[\].ToString(); } set { this[\] = value; } }

[ConfigurationProperty(\)] publicstring ProviderName {

get { returnthis[\].ToString(); } set { this[\] = value; } } } }

三、 获取自定义配置里的值。

1.0 使用如下代码取得自定义的值:

//获取连接字符串节点

ConnectionStringSection connectColl = (ConnectionStringSection)ConfigurationManager.GetSection(\); //设置开发连接字符串

string connectionString = connectColl.Develop[\].ConnectionString.ToString();

四、 配置EntityFramework 数据库连接(修改Entity Framework数据库连接为自定义字符串)。

1.0 定义EntityFramework初始化数据库连接的类:

namespace CustomConfig.Configrationner {

publicclassConfigrationTools {

#region自定义配置:数据库连接 ///

/// ************************************************************************************************************** ///注:(使用自定义数据库连接,需修改路径 Entities.edmx/Entities.Context.cs 下的构造文件) ///由: public Entities() : base(\

///改为: public Entities() : base(CustomConfig.Configrationner.ConfigrationTools.BuildConnection(), true) { } /// ************************************************************************************************************** ///

publicstaticEntityConnection BuildConnection() {

string connectionString = \; //获取连接字符串节点

ConnectionStringSection connectColl = (ConnectionStringSection)ConfigurationManager.GetSection(\); ////设置发布连接字符串

//connectionString = connectColl.Publish[\ //设置开发连接字符串

connectionString = connectColl.Develop[\].ConnectionString.ToString();

本文来源:https://www.bwwdw.com/article/ikhh.html

Top