【问题标题】:web.config c# .net web applicationweb.config c# .net web 应用程序
【发布时间】:2012-07-26 12:35:54
【问题描述】:

如何阅读 web.config 中的个人部分?

<MyPersonalSection>
    <add name="toto" enable="true" URL="http://localhost:43242" />
    <add name="titi" enable="false" URL="http://localhost:98762" />
<MyPersonalSection/>

我想用名称值获取启用值和/或 URL 值。

我也有这个错误:Unrecognized configuration section MyPersonalSection

我一直在努力

var config = ConfigurationManager.GetSection("MyPersonalSection");

【问题讨论】:

标签: c# .net web web-config


【解决方案1】:

Here 就是一个很好的例子。

【讨论】:

    【解决方案2】:

    您无需编写自定义配置处理程序即可获得所需内容。如果您只需要键值条目,可以使用内置的配置处理程序。但是,您必须使用key 而不是namevalue 而不是URL。例如:

    <configuration>
     <configSections>
      <section name="MyPersonalSection" type="System.Configuration.NameValueSectionHandler" />
     </configSections>
    <MyPersonalSection>
        <add key="toto" value="http://localhost:43242" />
        <add key="titi" value="http://localhost:98762" />
    </MyPersonalSection>
    </configuration>
    

    您可以通过代码访问它们:

    var myValues = ConfigurationSettings.GetConfig("MyPersonalSection") as NameValueCollection;
    var url = myValues["toto"];
    

    我建议以明确值应该是什么的方式命名您的键,例如“totoUrl”和“titiUrl”。

    如果您想要字符串值对以外的内容,则必须编写自己的自定义处理程序。

    【讨论】:

    • 感谢您的帮助。我已经尝试过了,但就我而言,它不起作用。我忘了说我有 3 个值,我编辑了我的第一条消息。
    • 那么您需要编写自己的处理程序,请参阅 laszlokiss88 的答案以供参考。
    • @Vinhent 编写自定义节处理程序有时需要以某种方式处理 XML 文本;但是,通常您可以创建类来表示元素,如 laszlokiss88 提供的链接中所述。
    【解决方案3】:

    您可以在 web.config 中添加 appSettings 部分,其中包含您需要的密钥。例如:

    <configuration>
       <appSettings>
          <add key="FirstUrl" value="http://localhost:43242"/>
          <add key="SecondUrl" value="http://localhost:98762" />
        </appSettings>
     ...
    </configuration>
    

    那么,既然是aspx.cs文件,就可以声明指令

    using System.Configuration;
    

    然后,您可以通过这种方式检索 FirstUrl 值:

     var myUrl = ConfigurationManager.AppSettings["FirstUrl"];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-07
      相关资源
      最近更新 更多