前言

在Nancy中有個(gè)十分不錯(cuò)的功能-Diagnostics,可以說這個(gè)功能讓人又愛又恨。

或許我們都做過下面這樣的一些嘗試:

  • 記錄某一個(gè)功能用到的相關(guān)技術(shù)信息

  • 記錄下網(wǎng)站的訪問記錄

  • 全局配置某些框架內(nèi)部功能的開關(guān)

  • .....

當(dāng)然,對(duì)于上面提到的這些東西,現(xiàn)在都有非常成熟的解決方案可以用。

不過,Nancy在內(nèi)部也實(shí)現(xiàn)了這樣的一個(gè)機(jī)制,可以讓我們比較方便的處理這些問題。

下面我們先來看看具體是如何使用的!本文也是著重于如何使用。

如何使用

由于在Nancy1.x與2.x中的差別,在使用Diagnostics的用法上也有了略微較大的差別。

截至在本文編寫之前(2017-06-26),Nancy在GITHUB上面的相關(guān)介紹還是基于1.x的。而本文是用2.0作為例子演示的,當(dāng)然也有與1.x的簡(jiǎn)單對(duì)比。

在2.0中,Diagnostics的啟用是通過在Bootstrapper中的Configure方法啟用,而在1.x中是通過重寫一個(gè)DiagnosticsConfiguration類型的屬性來啟用。

下面是兩個(gè)大版本之間的使用方法:

2.0的使用如下:

public override void Configure(INancyEnvironment environment){
    environment.Diagnostics(password: "123");    base.Configure(environment);
}

1.x的使用如下:

protected override DiagnosticsConfiguration DiagnosticsConfiguration
{    get { return new DiagnosticsConfiguration { Password = "123"}; }
}

其中,2.0中的寫法是通過INa