首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Visual Settings.settings文件

Visual Settings.settings文件
EN

Stack Overflow用户
提问于 2010-06-25 23:52:21
回答 1查看 4.5K关注 0票数 3

是否有一种在运行时在Settings.settings文件中创建新设置的方法?

例如,我希望从一个类函数中写入设置文件,并从另一个类函数中读取该值。不,我不想传递这些值。

我知道如何从Properties.Settings.Default.XXX)

  • I文件中获取值(=知道如何更新现有的值(Properties.Settings.Default.XXX = newValue;
    • )

我想知道如何在运行时将“名称”、“类型”、“范围”和“值”添加到Settings.settings文件中。

如有任何建议,将不胜感激!

谢谢你,伊瓦尔

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-06-25 23:57:37

问题

我相信Visual在设计应用程序设置和值时会生成代码,因此在运行时,如果没有设计器,这是不容易的,在最坏的情况下也是不可能的。但是,有时您可以在运行时调用设计特性。

您将注意到代码隐藏在C#中具有在设计器中创建的属性。例如,我添加了一个设置:

代码语言:javascript
复制
Age [int]  30. 

代码隐藏产生了:

代码语言:javascript
复制
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("30")]
public int Age {
   get {
       return ((int)(this["Age"]));
   }
   set {
       this["Age"] = value;
   }
}

(代码生成是您具有强类型设置的原因)

我不确定你是否能在运行时产生同样的效果。您必须生成代码并将其动态地反馈给JIT编译器或类似的东西。或者,在我对设置的有限理解中,也许还有一种我不知道的方法。

建议/解决办法

我建议找出另一种[更容易]的办法,而不是跳过铁环。例如,设置一个可序列化的集合类型,这样它就可以存储多个值。

然后,例如,您可以只在一个设置下存储多个年龄:

代码语言:javascript
复制
Ages  [System.Collections.ArrayList]  {add multiple values programatically}

您可能最终会使用C#代码来管理它,如下所示:

代码语言:javascript
复制
System.Collections.ArrayList list = new System.Collections.ArrayList();
list.Add("1");
list.Add("30");
Properties.Settings.Default.Ages = list;
Properties.Settings.Default.Save();
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3122137

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档