【问题标题】:Custom key value pairs on app/web/config/settings with WCF使用 WCF 在 app/web/config/settings 上自定义键值对
【发布时间】:2013-07-22 15:49:43
【问题描述】:

好的,我认为这很容易。

我需要从配置中获取 WCF 服务应用程序上的几个键值对。

  • 可以使用哪个文件? app.config/web.config/settings.settings/etc
  • 哪个最适合 WCF(至少在 VS2010 中)?为什么?
  • 如何在配置文件中写入? (例如<sometag><add key="foo">bar</add></sometag>
  • 如何从项目中的代码隐藏中调用它? ConfigurationManager["foo"].Something?

我想我清楚地表明了我对这些文件的困惑。

希望有人能驱散迷雾!

【问题讨论】:

    标签: c# wcf web-config settings app-config


    【解决方案1】:

    您的 VS 项目中应该有一个 app.config 文件。如果不这样做,您可以通过右键单击解决方案资源管理器中的项目,然后单击添加,然后新建项目来将其添加到项目中。在“添加新项目”屏幕中,您应该在左侧的常用项目中看到“常规”。双击中间屏幕中的第一项“应用程序配置文件”,您应该可以开始了。

    从那里,您可以添加您的 XML 标记。

    app.config 中的典型格式如下所示:

     <?xml version="1.0"?>
     <configuration>
        <startup>
            <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
        </startup>
        <appSettings>
           <add key="HostDomain" value="\\somedatabaseserver\DatabaseUnitTests" />
           <add key="Port" value="" />
         </appSettings>
     </configuration>
    

    根据您编译 WCF 服务的方式(哪种格式),您应该在 \project\bin\debug 目录中获得一个与可执行文件或 DLL 同名的 .config 文件。

    在代码中读取配置文件是这样完成的:

      Dim confReader As System.Configuration.AppSettingsReader = New System.Configuration.AppSettingsReader
      sHostDomain = confReader.GetValue("HostDomain", GetType(System.String)).ToString()
      sPort = confReader.GetValue("Port", GetType(System.String)).ToString()
    

    希望对您有所帮助。

    【讨论】:

    • 看起来很奇怪,VS2010 没有显示为将 app.config 添加到 WCF 应用程序的选项,列为选项我只有 web.config、app.manifest... 我可以凭空创建一个,但是,我认为 VS 试图通过删除该选项来告诉我一些事情。
    • 即使我可以在引用 WCF 的类项目上创建 app.config(它只出现在 &lt;configuration&gt;&lt;/configuration&gt; 标记中,它仍然不允许我这样做 confReader.GetValue("HostDomain", GetType(System.String)).ToString()(仅供参考,该标签实际上是后来在 appSettings 下创建的)。
    • 抱歉,迟到了。我在欧洲工作,5 点离开。Web.config 也可以。根据您部署项目的方式,web.config 与 app.config 的工作方式相同。
    猜你喜欢
    • 1970-01-01
    • 2023-02-24
    • 2018-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多