我从来没有想过它;但我最近学会了如何修改app.config文件以添加/删除跟踪侦听器(例如,将所有Trace.WriteLine输出重定向到文本文件)。我的.NET应用程序何时/如何使用其App.Config文件?
但我不太明白它是如何工作的?有人可以解释一下吗?
我知道相应的C#代码做与config(在这个例子中)相同的代码是否在我的应用程序的入口点之前生成/执行?
我从来没有想过它;但我最近学会了如何修改app.config文件以添加/删除跟踪侦听器(例如,将所有Trace.WriteLine输出重定向到文本文件)。我的.NET应用程序何时/如何使用其App.Config文件?
但我不太明白它是如何工作的?有人可以解释一下吗?
我知道相应的C#代码做与config(在这个例子中)相同的代码是否在我的应用程序的入口点之前生成/执行?
是否在我的应用程序入口点之前生成/执行该代码?
想象一个配置文件就像一个标准的文本文件。如果你的应用程序代码没有阅读并且没有做任何事情,那什么都不会发生。所以基本上当你在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>
然后你就可以改变一样使用命名空间
using System.Configuration;
阅读您的配置文件作为
string theme=ConfigurationManager.AppSettings("Theme");
如下
和mod通过使用这种
Configuration configFile = ConfigurationManager.OpenExeConfiguration(System.IO.Path.GetFileName(Application.ExecutablePath));
configFile.AppSettings.Settings(KeyName).Value = KeyValue;
configFile.Save();
接受并投票,如果你发现你的雁
如前所述其他人解释IFY。我只想解释我希望更深的一点。
在.NET中,您的CLR会为您的应用程序创建一个虚拟边界。换句话说,当您的应用程序被托管在CLR中时,它会为您的应用程序创建一个虚拟维度以供玩耍。它被称为AppDomain或应用程序域。 这是您的应用程序读取App.Config文件以获取任何信息的阶段。因为有时你的App.Config会告诉CLR它应该寻找什么样的运行时程序集:CLR 2.0程序集通常可以在VS2010 for 2.0中创建应用程序,或者先创建4个项目然后切换到2.0目标。
你不了解什么方面?当文件加载?何时添加跟踪侦听器?究竟是什么? – Oded 2011-12-31 10:51:43