2017-03-03 6 views
0

私はナンシー1.4.3でWeb APIを持っています。私は、applicationSettingsセクションのweb.configにいくつかの設定を定義しました。どのようにNancyモジュール(またはBootstrapper)でこれらの設定を読むことができますか? MVC/WebAPIのようにこれらの設定を読み込む従来の方法はNancyでは利用できないためです。 Nancy 1.4.3ではなく、Nancy 2xと.net 4.6.1ではなく、.net coreを使用しています。あなたはナンシーに欠けているWEBAPIに使用することになり、従来のどのような方法ナンシーのappsettingsを読む

<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> 

答えて

1

これは、asp.netアプリケーションとまったく同じように読むことができるはずです。あなたのキーを追加するWeb.configで

System.Configuration 

: あなたがへの参照を追加していることを確認してください

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

はあなたのブートストラップに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); 
     } 
    } 
} 

を! :)私はあなたが本当にSystem.Web.Configurationを使用するべきだと思うのWebアプリケーションのための

+0

はあなたの助けをありがとう!あなたも.netコアの変種を書き留めていただけますか?それとも、それは同じだろうか? (私はちょうどその前にそれを知りたいので、私が.netコアで作業するとき、私はそれが既に異なっていればそれを知っています)? もちろん、.netコアアプリケーションにweb.configではなくappsettings.jsonがあるという違いがあることはわかっています。 :) – Syed

+0

私が知っている限り、.netコアでnancyを使用するには、プレリリースバージョン2+を使用する必要があります。コアの設定マネージャーを使用することは、ここでは異なります:https://zimmergren.net/using-appsettings-json-instead-of-web-config-in-net-core-projects/私はまだ試していませんナンシー。 –

+0

優れた記事。ちょうど私が探していたもの。私はあなたに大きな感謝を借りています:) – Syed

0

を:簡単にするために

、私はapplicationSettingsセクションでは、web.configファイルでどのように見えるか書いていますか?