怎样动态更改App.config中的配置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样动态更改App.config中的配置相关的知识,希望对你有一定的参考价值。

在App.config 中设置了数据库连接字符串,
比如我现在要更改连接字符串中的登录密码,动态更改,根据页面上输入来更改,该如何操作。
请教专业人士
谢谢!

这样的话你就不能用App.Config里的设置了

你可以独立建立一个例如database.config文件,然后读取或者改变config文件中的链接字符就可用了

或者用属性来表示字符串,用get和set的方式
private string _connectionstring;
参考技术A ConfigurationManager.ConnectionStrings[0].ConnectionString="修改密码后的链接字符串" 参考技术B 远程链接啊

thinkphp5源码剖析系列2-配置文件

前言

tp5的配置种类包含四个分类

  • 惯例配置

    核心框架内置的配置文件(thinkphp/convention.php),无需更改。

  • 应用配置

    每个应用的全局配置文件(项目根目录下app/config目录下的文件)。

  • 模块配置

    每个模块的配置文件(相同配置参数会覆盖应用配置。)比如index模块app/index/config/database.php

  • 动态配置

    主要指在控制器或行为中进行(动态)更改配置。建议少用

以上配置优先级越来越高

ArrayAccess相关知识

如果你的类实现了ArrayAccess接口,那么这个类的对象就可以使用$foo[‘xxx‘]这种结构了。

$foo[‘xxx‘] 对应调用offsetGet方法。

$foo[‘xxx‘] = ‘yyy‘ 对应调用offsetSet方法。

isset($foo[‘xxx‘]) 对应调用offsetExists方法。

unset($foo[‘xxx‘]) 对应调用offsetUnset方法。
具体实现:

<?php
namespace lib;
class ArrayObj implements ArrayAccess{
    private $arr = [
        ‘name‘ => ‘cl‘,
        ‘age‘ => ‘25‘
    ];
    public function offsetExists( $offset ) {
        return isset($this->arr[$offset]);
    }

    public function offsetGet( $offset ) {
        return $this->arr[$offset];
    }

    public function offsetSet( $offset, $value ) {
        return $this->arr[$offset] = $value;
    }

    public function offsetUnset( $offset ) {
        unset( $this->arr[$offset]);
    }
}

以上是关于怎样动态更改App.config中的配置的主要内容,如果未能解决你的问题,请参考以下文章

App.config 中的更改不会在重新启动应用程序后反映出来

使用 FileSystemMonitoring 读取 app.config 中的更改并实时写入 app.config

c#中怎样读取xml文件中的数据,怎样动态将数据存储到xml文件中去?

thinkphp5源码剖析系列2-配置文件

C#如何动态修改app.config配置文件?

更改app.config配置文件的方法