2013-05-30 58 views
0

我已經拖過地球尋找答案,但找不到任何東西。ASP MVC + nInject中的全局應用程序設置

我正在重寫一個ASP WebForms應用程序到ASP MVC的過程。我一直在使用nInject,對於大多數對象來說這很好。我正在努力的是如何在全球視圖中呈現全局應用程序設置以供使用。

WebForms應用程序使用帶有靜態構造函數的靜態類,使用EF上下文將設置表(名稱,值)轉換爲字典,然後從該屬性讀取。

在MVC中做到這一點的最佳方式是什麼?顯然我仍然可以使用靜態類,但是我怎麼會注入ISettingRepository,因爲靜態構造函數必須是無參數的?

很抱歉,如果這還不是很清楚,它是一種很難解釋=/

回答

0

我看不出有任何理由,留在static類特別是當你使用Ninject

將您的靜態類更改爲普通類,該類在其構造函數中接受ISettingsRepository,並且NinjectSingleton範圍內爲您進行實例化。

或者,你可以留在static類,並使用Ninject解決您的ISettingsRepositoryService Locator模式,是這樣的:

public static class MyAppSettings 
{ 
     private static ISettingsRepository _rep; 

     MyAppSettings() 
     { 
     } 

     public static string Get(string key) 
     { 
      // instantiate if null 
      if (_rep == null) 
       _rep = kernel.Get<ISettingsRepository>(); 

      // ... 
     } 

     // ... 
} 
相關問題