Rob*_* P. 10 .net c# vb.net app-config
我以前从未想过它; 但我最近学会了如何修改app.config文件以添加/删除跟踪侦听器(例如,将所有Trace.WriteLine输出重定向到文本文件).
但我不太明白它是如何工作的?有人可以解释一下吗?
我知道相应的C#代码与配置相同(在本例中) - 该代码是否在我的应用程序入口点之前生成/执行?
在我的应用程序的入口点之前生成/执行该代码吗?
将配置文件视为标准文本文件.如果您的应用程序代码没有阅读并对其执行任何操作,则不会发生任何事情.所以基本上当你在app.config文件中定义一些部分时,你的应用程序中有一些代码(在BCL或自定义中),在某些时候会读取,解析和解释这些值.
所以,让我们考虑跟踪侦听器的示例.当您尝试在代码中跟踪某些内容时,底层Trace类将使用配置系统来检查您在app.config中定义的值.此配置系统仅解析XML一次,并将其作为单例存储在内存中,以避免每次开销.因此,它只是您第一次尝试跟踪配置文件被解析的内容,并且在后续调用中,这些值直接从内存中读取.
每次启动时,应用程序都会查看app.config文件.
您可以将任何设置存储在app.config文件中,动态添加或删除.
干得好...
<appSettings>
<add key="HospitalName" value="HML Hospital" />
<add key="HospitalAddress" value="Madurai" />
<add key="ServerName" value="SMSERVER" />
<add key="DatabaseName" value="HospiCare" />
<add key="DBUserID" value="sa" />
<add key="Theme" value ="Blue"/>
</appSettings>
Run Code Online (Sandbox Code Playgroud)
然后你可以改变如下
使用命名空间
using System.Configuration;
Run Code Online (Sandbox Code Playgroud)
读取您的配置文件
string theme=ConfigurationManager.AppSettings("Theme");
Run Code Online (Sandbox Code Playgroud)
并使用此修改
Configuration configFile = ConfigurationManager.OpenExeConfiguration(System.IO.Path.GetFileName(Application.ExecutablePath));
configFile.AppSettings.Settings(KeyName).Value = KeyValue;
configFile.Save();
Run Code Online (Sandbox Code Playgroud)
如果找到您的anser,请接受并投票