我在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>
答案 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"];