【发布时间】:2014-02-04 00:13:27
【问题描述】:
我使用Properties > Settings 对话框将Settings.settings 文件添加到我的项目中。我创建了一个新的配置元素,其类型为自定义类型。自动生成的代码输出如下:
[global::System.Configuration.ApplicationScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
public global::Moslem.Model.Configuration.ApplicationConfiguration AppConfig
{
get
{
return ((global::Moslem.Model.Configuration.ApplicationConfiguration)(this["AppConfig"]));
}
}
到目前为止,这很好。默认情况下,所有带有ApplicationScopedSettingAttribute 的设置都是只读的。因此,我不能简单地在应用程序的其他地方启动它。显然,对ApplicationConfiguration 对象的任何属性的任何使用都会抛出NullReferenceException。
我的问题:
- 是否有标准方法来启动所有具有应用程序范围的对象?
- 简单地编写自己的构造函数并启动对象是否安全? (因为
Properties.Settings是自动生成的部分)
【问题讨论】:
-
它们是从您的 .config 文件的内容初始化的。给他们一个默认值往往是陷入成功陷阱的好方法。
-
@HansPassant:你能写一个例子吗?我正在尝试在 MVC 应用程序的
Application_Start()中分配一些值。我不确定 .config 文件当时是否存在。
标签: c# properties settings nullreferenceexception