ASP MVC + nInject中的全局应用程序设置

时间:2013-05-30 08:07:53

标签: asp.net-mvc ninject

我已经在世界各地寻找答案,但找不到任何答案。

我正在将ASP WebForms应用程序重写为ASP MVC。我一直在使用nInject,对于大多数对象,这很好。我正在努力解决的问题是如何在每个视图中显示全局应用程序设置。

WebForms应用程序使用带有静态构造函数的静态类,使用EF上下文将设置表(名称,值)转换为字典,然后从属性中读取属性。

在MVC中执行此操作的最佳方法是什么?显然,我仍然可以使用静态类,但是如何注入ISettingRepository,因为静态构造函数必须是无参数的?

对不起,如果不是很清楚,那就很难解释= /

1 个答案:

答案 0 :(得分:0)

我认为没有理由继续使用static课程,尤其是当您使用Ninject时。

将静态类更改为在其构造函数中接受ISettingsRepository的普通类,并让NinjectSingleton范围内为您实例化。

或者,您可以使用static课程并使用Ninject解决ISettingsRepository Service 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>();

            // ...
      }

      // ...
}