2017-06-28 36 views
0

目前我在图书馆创建builted像这样的一个app.config文件:如何正确使用app.config?

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <startup> 
     <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" /> 
    </startup> 
<appSettings> 
    <add key ="DATE" value="dd/MM/yyyy"/> 
    <add key ="TIME" value="HH:mm|HH:mm:ss"/> 
    <add key ="DURATION" value="ss|mm:ss|hh:mm:ss|hhmmss"/> 
    <add key ="LAT_LONG" value="dd.ddddd[N,S]dd.ddddd[E,W]|[-]dd.ddddd°,[-]dd.ddddd°|[-]ddmmss.ssss, [-]dddmmss.ssss "/> 
</appSettings> 
</configuration> 

我需要用户通过添加和/或删除格式,甚至将新设置添加到文件来修改这个设置。我使用ConfigurationManager来做到这一点。

现在我怀疑这将实际上工作时,这个应用程序将部署,因为,如果我明白我在我以前的研究中读取,appSettings不能在运行时修改。我必须使用userSettings吗?在这种情况下,我可以直接在这个app.Config文件中添加它们吗?如何工作userSettings?我可以用ConfigurationManager与他们互动吗?

编辑:确定我明白,我问了很多东西,所以让我们做的事情很简单。我可以将userSettings节点添加到我的app.Config吗?如果是,我的申请是否真的在他们身上工作?

+3

这将是太宽泛,脱离主题Ø写在NET的这个关键部分的教程。你可以在这里找到一个众所周知的教程[破解.NET 2.0配置之谜](https://www.codeproject.com/Articles/19675/Cracking-the-Mysteries-of-NET-2-0-Configuration#duplicate = 0) – Steve

+0

[WPF中的用户设置](https://blogs.msdn.microsoft。com/patrickdanino/2008/07/23/user-settings-in-wpf /) – stuartd

+0

@stuartd是的好,但设置和app.config是一样的东西?我不这么认为 –

回答

0

当你想设置一个用户个性化的配置,你可以遵循从MS为我们(开发商)编写容易的道路。

在这种情况下,你只需用你的项目的属性菜单定义你的初始设置,然后选择设置。

在这里您可以定义两种设置。应用程序设置(对该机器上的所有用户有效,且不易从代码修改)和用户设置。这些最后一个按用户分开保存,并在用户文件夹层次结构中的客户机上的某个obsure文件夹中写入。

这些设置是可以改变的,并使用设置类在运行时保存。
因此,假设您已经在项目的Settings配置中添加了类似字符串DateFormat和范围User的设置。

现在你可以用

string format = Settings.Default.DateFormat; 
.... 
format = "dd/MM/yy"; 
Settings.Default.DateFormat = format; 
Settings.Default.Save(); 

找回这只是为了让你开始的基本。你也应该看看this question and answer处理这种情况,当你需要升级存储在用户设置信息文件

0

我建议你考虑以不同的方式接近这一点。即不使用appconfig,为什么不使用文本文件或数据库(对于此用例可能会有太多开销)来存储用户特定的设置。 AppConfig适用于特定于应用程序的内容,因此无论如何将用户关注点分离出来可能是一个好主意。将用户设置存储为文本文件中的json对象,并将其直接序列化到您的UserSettings对象。

然而,看看ServiceStack.Text来处理AppSettings,序列化/ DeSerializing设置到您的POCO对象。这里的an example如何使用AppSettings的API。

但同样,而不是使用AppSettings的,你可以阅读从文本文件/写和序列化到您选择的对象,仍然使用相同的API。