在ASP.NET 2.0中管理设置(配置)的最佳方法是什么?

时间:2009-03-27 17:18:31

标签: c# asp.net settings

我有一个项目,我们正在将一些功能从现有客户端扩展到ASP.NET 2.0中的Web门户。客户端是基于Windows窗体(在.NET 2.0中)。它有一些保存在项目中的设置>属性> Settings.settings系统,包括生成的settings.Designer.cs文件。此文件为每个设置提供了很好的自动包装。

在尝试建立网站时,我对此功能明显缺乏平价感到沮丧。我有一个web.config,它可以有一个部分。这意味着通过代码访问字符串,例如:

WebConfigurationManager.AppSettings["mySetting"];

我甚至可以让这些设置以这种方式引用另一个文件,提供一点抽象,并且更容易检查源代码控制:

<appSettings configSource="web.settings.config"/>

但最终缺少客户端项目设置系统的一些功能。

特别是如果可能的话,我非常喜欢这些功能:

  • 自动生成的访问器类(为方便起见,智能感知......)
    • 便利
    • 强烈打字
    • 提供智能感知
    • 代码不会针对设置名称中的拼写错误/错误进行编译
  • 简易界面
    • 之前的settings.Settings提供了一个漂亮的网格
    • 所有选项代表
    • 显示某些选项的下拉选项
    • 不必编辑XML
    • 不能胖指角支架

我知道可以创建一个包含这些内容的类,但它不会自动与设置保持同步,并且必须在任何更改时手动编辑。然而,它会提供一些上述内容。

我可以像在客户端那样与项目设置保持一致吗?

管理ASP.NET 2.0网站设置的最佳方法是什么?

3 个答案:

答案 0 :(得分:1)

您应该使用Web应用程序,而不是网站,您可以像使用Windows应用程序一样访问设置

答案 1 :(得分:0)

默认情况下,使用web.config中的appSettings部分是管理Web应用程序的应用程序设置的最简单方法。您可以根据需要在应用程序设置中强制转换值。但是,在这种情况下你会失去强力打字,这听起来像是一个破坏你的交易。

如果确实需要保留强类型,请进入项目设置(类似于WinForms应用程序)并在那里设置值。您会注意到.Projects文件夹中存在settings.settings文件,但您也会在web.config文件的底部找到以下代码片段(从我的某个应用程序中刷过):

<applicationSettings>
   <EAF.My.MySettings>
      <setting name="EAF_AS400EmployeeServices_EmployeeServices" serializeAs="String">                                          
      <value>http://countynetappsdev/AS400DataService/EmployeeServices.asmx</value>
  </setting>
</applicationSettings>

请注意本节中的serializeAs属性。完成本节后,您可以使用VB.NET通过My.Settings库访问设置。但是,由于您使用的是C#,因此需要更多的工作,但可以找到一个简单的代码解决方案here

答案 2 :(得分:0)

我创建了包装web.config的类,以提供对类型设置的强类型,智能感知友好访问。

此外,支持人员在实施时最有可能在XML中更改设置,因此VS中的网格没有区别。当然,它不是自动生成的,但复制/粘贴是你的朋友:)