繁体   English   中英

在web.config或app.config中存储分层应用程序设置

[英]storing hierarchical application settings in web.config or app.config

我需要在web.config或app.config中以分层格式存储我的应用程序配置设置。 这可能吗? 或者我必须将它存储在某个XML文件或数据库中并使用它? 普通名称值对格式对我来说还不够。

    <appSettings>
        <Report1>
          <add key="SourceFilePath" value="value1" />
          <add key="DestinationFolderPath" value="value2" />
        </Report1>
        <Report2>
          <add key="SourceFilePath" value="value1" />
          <add key="DestinationFolderPath" value="value2" />
        </Report2>
   </appSettings>

它是一个基于Web的报告应用程序,我需要存储源文件,SSIS包,FTP服务器详细信息等的文件路径。

更新:如果我选择自定义配置部分选项,是否可以将设置存储在单独的文件中以保持主要web.config文件从应用程序设置中清除?

您无法向appSettings添加自定义元素。

实现自定义格式的最佳方法是编写自己的ConfigurationSettings类并在配置中使用它。

这将允许您以强类型方式存储数据,以及具有有意义的元素和属性名称。

请参见如何:在MSDN上使用ConfigurationSection创建自定义配置节

你不能像你的建议那样做。

你可以做的是按键名称分组元素:

<appSettings>
      <add key="Report1:SourceFilePath" value="value1" />
      <add key="Report1:DestinationFolderPath" value="value2" />
      <add key="Report2:SourceFilePath" value="value1" />
      <add key="Report2:DestinationFolderPath" value="value2" />
</appSettings>

最好的方法是定义自己的ConfigurationSection。

这里有一些关于这个的链接:

您不能按照您在appsettings中建议的方式存储xml元素。 如果您需要按照提到的层次结构,请尝试以下方法之一

  1. 将整个xml元素存储在appsettings中解析xml

     <appSettings> <add key="Report1" value="<Report1 SourceFilePath=""value1"" DestinationFolderPath=""value2"" />" /> <add key="Report2" value="<Report2 SourceFilePath=""value1"" DestinationFolderPath=""value2"" />" /> </appSettings> 
  2. 将xml存储在config部分中(参见上面的答案)

  3. 使用DslConfig项目。
    使用NuGet添加它,然后添加AppSpike作为示例。
    在您的情况下,您可以创建一个类ReportConfig并将此类用作配置类。
    例:

     public class Report { string SourceFilePath { get; set; } string DesinationFolderPath { get; set; } } 

在Variables.var中创建配置文件条目

   import ReportClassNamespace from ReportClassAssembly

   Var["Report1"] = Report(SourceFilePath:"value1",DesinationFolderPath:"value2")
   Var["Report2"] = Report(SourceFilePath:"value1",DesinationFolderPath:"value2")
  1. 试试NConfig项目

我知道的最好方法是创建自己的Settings类并序列化/ desiarilze它以读取/写入您的应用程序。 设置。

您也可以使用Admin。 您网站的页面将所有设置保存到其中。

可能在你的情况下最好使用数据库来保存所有设置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM