MVC6では、Microsoft.Extensions.Configurationでappsettings.jsonに書かれた設定を利用している。これを業務ロジック側でも利用する方法。

まずは、設定格納のオブジェクトを用意しない方法。

Startup.cs

    public void ConfigureServices(IServiceCollection services)
    {
        // Add framework services.
        services.AddApplicationInsightsTelemetry(Configuration);
        services.AddMvc();

        //コントローラ側で設定が利用できるように
        services.AddInstance<IConfiguration>(Configuration);
    }

appsettings.json

設定を追加
{
  "ManekiNeko": {
    "Settings": {
      "Pager": {
        "A": 10,
        "B": 10
      } 
    }
  }
}

コントローラ

public class CodUnitController : Controller
{
    private IConfiguration config;

    public CodUnitController(IConfiguration config)
    {
        this.config = config;
    }

これで、コントローラ内でconfig.GetSectionで値が取得できる。(Springのサービス注入みたいな感じを思い浮かべてもらえばいいのかな? )

var a = this.config.GetSection("ManekiNeko:Settings:Pager:A").Value;

GetSectionは、「:」区切りのパス形式かメソッドチェーンでもOK。

var a = this.config.GetSection("ManekiNeko").GetSection("Settings").Value;

次は設定用のオブジェクトにデシリアライズして利用する方法。

Startup.cs

    public void ConfigureServices(IServiceCollection services)
    {
        // Add framework services.
        services.AddApplicationInsightsTelemetry(Configuration);
        services.AddMvc();

        //コントローラ側で設定が利用できるように
        services.Configure<ManekiNeko>(Configuration.GetSection("ManekiNeko"));
    }

ManekiNekoは、appsettings.jsonのManekiNeko部分がデシリアライズ可能なクラスをJSONから作成しておく。http://blog.bright-l.0am.jp/2015/12/12/c-dexmlkarakurasuwozuo-cheng-suru/

コントローラ

public class HomeController : Controller
{
    private IOptions<ManekiNeko> _config;

    public HomeController(IOptions<ManekiNeko> myConfig)
    {
        _config = myConfig;
    }

利用する場合は、

var a = _config.Options.Settings.Pager.A;

前者は、パッと使えるのでお手軽だけど、後者は型を厳密に定義するので、appsettings.jsonの記述ミスなどは発覚しやすい。(前者はパスが無いとNULLが戻るだけ)

どちらがいいかはプロジェクト次第ですかね。