0

我已经在全球范围内寻找答案,但找不到任何东西。

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

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

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

对不起,如果这不是很清楚,这有点难以解释 =/

4

1 回答 1

0

我认为没有理由留在static课堂上,尤其是当您使用Ninject.

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

或者,您可以留在static课堂上并使用Ninject来解决您的ISettingsRepositoryinService 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>();

            // ...
      }

      // ...
}
于 2013-05-30T08:30:50.117 回答