如何通达信自定义界面设置一个配置文件的设置界面

资料有瑕疵,参考需谨慎。本博主不付任何责任。
自定义应用程序配置文件(app.config)
1. 向项目添加app.config文件:
右击项目名称,选择“添加”→“添加新建项”,在出现的“添加新项”对话框中,选择“添加应用程序配置文件”;如果项目以前没有配置文件,则默认的文件名称为“app.config”,单击“确定”。出现在设计器视图中的app.config文件为:
&?xmlversion="1.0"encoding="utf-8" ?&
&configuration&
&/configuration&
在项目进行编译后,在bin/Debuge文件下,将出现两个配置文件(以本项目为例),一个名为“JxcManagement.EXE.config”,另一个名为“JxcManagement.vshost.exe.config”。第一个文件为项目实际使用的配置文件,在程序运行中所做的更改都将被保存于此;第二个文件为原代码“app.config”的同步文件,在程序运行中不会发生更改。
connectionStrings配置节:
请注意:如果您的SQL版本为2005 Express版,则默认安装时SQL服务器实例名为localhost/SQLExpress,须更改以下实例中“Data
Source=”一句为“Data Source=localhost/SQLE”,在等于号的两边不要加上空格。
&!--数据库连接串--&
&connectionStrings&
&addname="conJxcBook"
connectionString="Data Source=Initial Catalog=User
ID=password=********"
providerName="System.Data.SqlClient" /&
&/connectionStrings&
3. appSettings配置节:
appSettings配置节为整个程序的配置,如果是对当前用户的配置,请使用userSettings配置节,其格式与以下配置书写要求一样。
&!--进销存管理系统初始化需要的参数--&
&appSettings&
&addkey="userName"value="" /&
&addkey="password"value="" /&
&addkey="Department"value="" /&
&addkey="returnValue"value="" /&
&addkey="pwdPattern"value="" /&
&addkey="userPattern"value="" /&
&/appSettings&
4.读取与更新app.config
对于app.config文件的读写,参照了网络文章: SystemConfiguration.asp标题为“Read/Write App.Config
File with .NET 2.0”一文。
请注意:要使用以下的代码访问app.config文件,除添加引用System.Configuration外,还必须在项目添加对System.Configuration.dll的引用。
4.1 读取connectionStrings配置节
///&summary&
///依据连接串名字connectionName返回数据连接字符串
///&/summary&
///&param name="connectionName"&&/param&
///&returns&&/returns&
private static string GetConnectionStringsConfig(string connectionName)
string connectionString =
ConfigurationManager.ConnectionStrings[connectionName].ConnectionString.ToString();
Console.WriteLine(connectionString);
return connectionS
4.2 更新connectionStrings配置节
///&summary&
///更新连接字符串
///&/summary&
///&param name="newName"&连接字符串名称&/param&
///&param name="newConString"&连接字符串内容&/param&
///&param name="newProviderName"&数据提供程序名称&/param&
private static void UpdateConnectionStringsConfig(string newName,
string newConString,
string newProviderName)
bool isModified = false;
//记录该连接串是否已经存在
//如果要更改的连接串已经存在
if (ConfigurationManager.ConnectionStrings[newName] != null)
isModified = true;
//新建一个连接字符串实例
ConnectionStringSettings mySettings =
new ConnectionStringSettings(newName, newConString, newProviderName);
// 打开可执行的配置文件*.exe.config
Configuration config =
ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
// 如果连接串已存在,首先删除它
if (isModified)
config.ConnectionStrings.ConnectionStrings.Remove(newName);
// 将新的连接串添加到配置文件中.
config.ConnectionStrings.ConnectionStrings.Add(mySettings);
// 保存对配置文件所作的更改
config.Save(ConfigurationSaveMode.Modified);
// 强制重新载入配置文件的ConnectionStrings配置节
ConfigurationManager.RefreshSection("ConnectionStrings");
4.3 读取appStrings配置节
///&summary&
///返回*.exe.config文件中appSettings配置节的value项
///&/summary&
///&param name="strKey"&&/param&
///&returns&&/returns&
private static string GetAppConfig(string strKey)
foreach (string key in ConfigurationManager.AppSettings)
if (key == strKey)
return ConfigurationManager.AppSettings[strKey];
return null;
4.4 更新connectionStrings配置节
///&summary&
///在*.exe.config文件中appSettings配置节增加一对键、值对
///&/summary&
///&param name="newKey"&&/param&
///&param name="newValue"&&/param&
private static void UpdateAppConfig(string newKey, string newValue)
bool isModified = false;
foreach (string key in ConfigurationManager.AppSettings)
if(key==newKey)
isModified = true;
// Open App.Config of executable
Configuration config =
ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
// You need to remove the old settings object before you can replace it
if (isModified)
config.AppSettings.Settings.Remove(newKey);
// Add an Application Setting.
config.AppSettings.Settings.Add(newKey,newValue);
// Save the changes in App.config file.
config.Save(ConfigurationSaveMode.Modified);
// Force a reload of a changed section.
ConfigurationManager.RefreshSection("appSettings");
5.加密配置文件
此节代码参照Dariush Tasdighi所著文章《Encrypt and Decrypt of ConnectionString in app.config and/or web.config!》,原文载于Configuration_File.asp。
请注意:(1)要使用以下的代码访问app.config文件,除添加引用System.Configuration外,还必须在项目添加对System.Configuration.dll的引用; (2)以下示例代码中的DPAPI提供程序为“DataProtectionConfigurationProvider”,这是一种基于机器名和当前用户密码的加密方式。如果计划在多台服务器(Web 场合)上使用相同的加密配置文件,则只有通过 RSAProtectedConfigurationProvider 才能导出加密密钥,并将其导入其他服务器。(3)加密后的配置文件不需要解密即可用上述方法直接读取。
5.1 加密connectionStrings配置节
///&summary&
///加密配置文件中的ConnectionString节
///&/summary&
///&param name="protect"&true为加密,false为解密&/param&
public static void ConnectionStringProtection( bool protect)
//取得当前程序的执行路径
string pathName = Application.ExecutableP
// 定义Dpapi提供程序的名称.
string strProvider = "DataProtectionConfigurationProvider";
System.Configuration.Configuration oConfiguration = null;
System.Configuration.ConnectionStringsSection oSection = null;
// 打开配置文件,并取得connectionStrings配置节.
oConfiguration =
System.Configuration.ConfigurationManager.OpenExeConfiguration(pathName);
if (oConfiguration != null)
bool blnChanged = false;
oSection = oConfiguration.GetSection("connectionStrings") as
System.Configuration.ConnectionStringsSection;
if (oSection != null)
if ((!(oSection.ElementInformation.IsLocked)) && (!(oSection.SectionInformation.IsLocked)))
if (protect)
if (!(oSection.SectionInformation.IsProtected))
blnChanged = true;
// 加密connectionStrings配置节.
oSection.SectionInformation.ProtectSection(strProvider);
if (oSection.SectionInformation.IsProtected)
blnChanged = true;
// 解密connectionStrings配置节.
oSection.SectionInformation.UnprotectSection();
if (blnChanged)
// 如果connectionStrings配置节被更改,则强制保存它.
oSection.SectionInformation.ForceSave = true;
// 保存对connectionStrings配置节的更改.
oConfiguration.Save();
catch (System.Exception ex)
throw (ex);
5.2 加密appSettings配置节
///&summary&
///加密配置文件中的AppSettings配置节
///&/summary&
///&param name="protect"&true为加密,false为解密&/param&
public static void AppSettingProtection(bool protect)
//取得当前程序的执行路径
string pathName = Application.ExecutableP
// Define the Dpapi provider name.
string strProvider = "DataProtectionConfigurationProvider";
System.Configuration.Configuration oConfiguration = null;
System.Configuration.AppSettingsSection oSection = null;
// Open the configuration file and retrieve the connectionStrings section.
oConfiguration =
System.Configuration.ConfigurationManager.OpenExeConfiguration(pathName);
if (oConfiguration != null)
bool blnChanged = false;
oSection = oConfiguration.GetSection("appSettings") as
System.Configuration.AppSettingsSection;
if (oSection != null)
if ((!(oSection.ElementInformation.IsLocked)) &&
(!(oSection.SectionInformation.IsLocked)))
if (protect)
if (!(oSection.SectionInformation.IsProtected))
blnChanged = true;
// Encrypt the section.
oSection.SectionInformation.ProtectSection(strProvider);
if (oSection.SectionInformation.IsProtected)
blnChanged = true;
// Remove encryption.
oSection.SectionInformation.UnprotectSection();
if (blnChanged)
// Indicates whether the associated configuration section will be saved even
// if it has not been modified.
oSection.SectionInformation.ForceSave = true;
// Save the current configuration.
oConfiguration.Save();
catch (System.Exception ex)
throw (ex);
app.config文件的配置及应用
App.Config设置自定义节点
在Web.config或App.config中的添加自定义配置
在web.config和app.config文件中增加自定义配置节点的方法
自定义app.config中的section节点以及在运行中的使用
Winform操作App.config(增加、修改、删除、读取等)
App.Config详解及读写操作
App.Config详解
没有更多推荐了,博客分类:
&&& 假设你要把struts.xml配置文件存放在/WEB-INF/config目录下,web.xml作如下配置即可:
web.xml
&filter-name&struts2&/filter-name&
&filter-class&org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter&/filter-class&
&init-param&
&param-name&config&/param-name&
&param-value&struts-default.xml,struts-plugin.xml,../config/struts.xml&/param-value&
&/init-param&
&filter-mapping&
&filter-name&struts2&/filter-name&
&url-pattern&/*&/url-pattern&
&/filter-mapping&
fufangqin1024
浏览: 13016 次
太有用了, 谢了!
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'博客分类:
spring boot使用application.properties默认了很多配置。但需要自己添加一些配置的时候,我们应该怎么做呢。
若继续在application.properties中添加
wisely2.name=wyf2
wisely2.gender=male2
定义配置类:
@ConfigurationProperties(prefix = "wisely2")
public class Wisely2Settings {
public String getName() {
public void setName(String name) {
this.name =
public String getGender() {
public void setGender(String gender) {
this.gender =
若新用新的配置文件
如我新建一个wisely.properties
wisely.name=wangyunfei
wisely.gender=male
需定义如下配置类
@ConfigurationProperties(prefix = "wisely",locations = "classpath:config/wisely.properties")
public class WiselySettings {
public String getName() {
public void setName(String name) {
this.name =
public String getGender() {
public void setGender(String gender) {
this.gender =
最后注意在spring Boot入口类加上@EnableConfigurationProperties
@SpringBootApplication
@EnableConfigurationProperties({WiselySettings.class,Wisely2Settings.class})
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
使用定义的properties
在别的bean中可直接注入
@Controller
public class TestController {
@Autowired
WiselySettings wiselyS
@Autowired
Wisely2Settings wisely2S
@RequestMapping("/test")
public @ResponseBody String test(){
System.out.println(wiselySettings.getGender()+"---"+wiselySettings.getName());
System.out.println(wisely2Settings.getGender()+"==="+wisely2Settings.getGender());
return "ok";
新书推荐《JavaEE开发的颠覆者: Spring Boot实战》,涵盖Spring 4.x、Spring MVC 4.x、Spring Boot企业开发实战。
京东地址:
当当地址:
亚马逊地址:
或自己在京东、淘宝、亚马逊、当当、互动出版社搜索自选。
浏览 131014
locations 这个属性没了?看看这个文章http://fabiomaffioletti.me/blog//spring-configuration-properties-locations-deprecation-another-approach/
locations 这个属性没了?我也发现没了,这可如何是好
如果我有一个配置类和多个格式相同内容不同的配置文件,我想根据这几个配置文件生成几个不同的配置类实例,用注解应该怎么做?找到了定义好类public class DataConfig { private S private String driverClassN private S private S private T&&&&&&& ...getter and setter...}在配置类里面定义@Configurationpublic class PropertiesConfTest { @Bean(name="edmsDataConfig") @ConfigurationProperties(prefix = "datasource.edms") public DataConfig edmsDataConfig(){
return new DataConfig(); } @Bean(name="uicDataConfig") @ConfigurationProperties(prefix = "datasource.uic") public DataConfig uicDataConfig(){
return new DataConfig(); }}
如果我有一个配置类和多个格式相同内容不同的配置文件,我想根据这几个配置文件生成几个不同的配置类实例,用注解应该怎么做?我也有这个问题,不知道怎么处理
你书里的源代码在哪下载啊?http://www.broadview.com.cn/?#book/bookdetail/bookDetailAll.jsp?book_id=b47a1c54--b3e2-b8bc4899a97e&isbn=978-7-121-28208-9
浏览: 1507782 次
来自: 合肥
浏览量:59369
浏览量:109095
博主,你这个认证服务器是个单应用,作微服务、我要用几个认证服务 ...
汪老师,你好,我想就spring boot测试方面的问题请教一 ...
wiselyman 写道dyj025 写道楼主源码访问不了.可 ...
dyj025 写道楼主源码访问不了.可否移到github.co ...
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
最近项目需要用到自定义配置文件,类似于这样的,但是我用$this-&config-&load()加载后却报错Your D:\wamp\www\test\application\config/alipay.php file does not appear to contain a valid configuration array.于是将自定义下的配置文件里的数组名都改为config后,成功!,错误消失,CI不可以自定义配置数组名么???
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
不可以,除非深度改CI源码,这样会得不偿失,$config数组键名,键值对应是配置名和配置项。这个已经能解决一切配置问题。
分享到微博?
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:
在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。

我要回帖

更多关于 yii2 自定义配置文件 的文章

 

随机推荐