Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我的.NET应用程序何时/如何使用其App.Config文件?_C#_.net_Vb.net_App Config - Fatal编程技术网

C# 我的.NET应用程序何时/如何使用其App.Config文件?

C# 我的.NET应用程序何时/如何使用其App.Config文件?,c#,.net,vb.net,app-config,C#,.net,Vb.net,App Config,我以前从未想过这件事;但我最近了解了如何修改app.config文件以添加/删除跟踪侦听器(例如,将所有trace.WriteLine输出重定向到文本文件) 但我不太明白它是怎么工作的?有人能解释一下吗 我知道与配置相同的对应C#代码(在本例中)-该代码是否在我的应用程序入口点之前生成/执行 该代码是否在我的应用程序入口点之前生成/执行 将配置文件视为标准文本文件。如果您的应用程序代码不读取并使用它做任何事情,那么什么也不会发生。因此,基本上,当您在app.config文件中定义某个部分时,应用

我以前从未想过这件事;但我最近了解了如何修改app.config文件以添加/删除跟踪侦听器(例如,将所有trace.WriteLine输出重定向到文本文件)

但我不太明白它是怎么工作的?有人能解释一下吗

我知道与配置相同的对应C#代码(在本例中)-该代码是否在我的应用程序入口点之前生成/执行

该代码是否在我的应用程序入口点之前生成/执行

将配置文件视为标准文本文件。如果您的应用程序代码不读取并使用它做任何事情,那么什么也不会发生。因此,基本上,当您在app.config文件中定义某个部分时,应用程序中有一些代码(BCL或custom)会在某个时刻读取、解析和解释这些值


这样,让我们考虑跟踪侦听器的例子。当您尝试跟踪代码中的某些内容时,底层跟踪类将使用config系统检查您在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>
将配置文件读取为

string theme=ConfigurationManager.AppSettings("Theme");
并使用此

Configuration configFile = ConfigurationManager.OpenExeConfiguration(System.IO.Path.GetFileName(Application.ExecutablePath));
configFile.AppSettings.Settings(KeyName).Value = KeyValue;
configFile.Save();

如果您发现您的答案,请接受并投赞成票,其他人已经解释过了。我希望我能更深入地解释一下

在.NET中,CLR为应用程序创建虚拟边界。换句话说,当应用程序托管在CLR中时,它会创建一个虚拟维度供应用程序使用。它被称为AppDomain或Application Domain。
这是应用程序读取App.Config文件以获取任何信息的阶段。因为有时你的App.Config会告诉CLR它应该查找哪种类型的运行时程序集,例如:CLR 2.0程序集。如果你在VS2010中为2.0构建应用程序,或者先为4创建项目,然后切换到2.0目标,通常会看到这种情况。

你不了解什么方面?文件何时加载?何时添加跟踪侦听器?到底是什么?
Configuration configFile = ConfigurationManager.OpenExeConfiguration(System.IO.Path.GetFileName(Application.ExecutablePath));
configFile.AppSettings.Settings(KeyName).Value = KeyValue;
configFile.Save();