阅读南希的appsettings

时间:2017-03-03 15:36:29

标签: asp.net-web-api web-config nancy

我在Nancy 1.4.3中有一个web api。我在applicationSettings部分的web.config中定义了一些设置。我想知道如何在Nancy模块(或Bootstrapper)中读取这些设置?因为在Nancy中没有像在MVC / WebAPI中那样读取这些设置的传统方法。 请考虑我使用Nancy 1.4.3而不是Nancy 2x和.net 4.6.1而不是.net核心。

为简单起见,我正在编写web.config中的applicationSettings部分:

<applicationSettings>
    <Applicaton1.Properties.Settings>
       <setting name="DefaultUserID" serializeAs="String">
         <value>BatchReader</value>
       </setting>
      <setting name="DefaultPaymentFrequencyCode" serializeAs="String">
        <value>0</value>
      </setting>
     <setting name="DefaultPaymentTypeCode" serializeAs="String">
        <value>1</value>
     </setting>
</Application1.Properties.Settings>

3 个答案:

答案 0 :(得分:1)

你应该能够像任何asp.net应用程序一样阅读它。 请务必添加对以下内容的引用:

System.Configuration

在Web.config中添加密钥:

<appSettings>
<add key="key" value="hello key" />
</appSettings>

在Bootstrapper中包含System.Configuration:

namespace Test
{
    using System.Configuration;
    using Nancy;
    using Nancy.Authentication.Forms;
    using Nancy.Bootstrapper;
    using Nancy.TinyIoc;


    public class Bootstrapper : DefaultNancyBootstrapper
    {
        protected override void ApplicationStartup (TinyIoCContainer container,
                                                   IPipelines pipelines)
        {
            base.ApplicationStartup (container, pipelines);
            StaticConfiguration.DisableErrorTraces = false;
            StaticConfiguration.EnableRequestTracing = true;
        }

        protected override void ConfigureApplicationContainer (TinyIoCContainer
                                                              container)
        {
            base.ConfigureApplicationContainer (container);

            var key = ConfigurationManager
                                       .AppSettings.Get ("key")

        }


        protected override void ConfigureRequestContainer (TinyIoCContainer container,
                                                          NancyContext context)
        {
            base.ConfigureRequestContainer (container, context);

        }

        protected override void RequestStartup (TinyIoCContainer container,
                                               IPipelines pipelines,
                                               NancyContext context)
        {
            base.RequestStartup (container, pipelines, context);
        }
    }
}

多数民众赞成! :)

答案 1 :(得分:0)

您在南希缺少的WebApi中使用哪些传统方式?

答案 2 :(得分:0)

对于网络应用,我认为您应该使用System.Web.Configuration

using System.Web.Configuration

例如:

  var someVar = WebConfigurationManager.AppSettings["SomeSetting"];

See here for more information.