Внедрение зависимостей с помощью Ninject 3 на веб-сайте ASP.NET

Я попробовал следующее решение, найденное в Как реализовать Ninject или DI в веб-формах asp.net?(Ответ Джейсона)

  1. Создайте новый проект ASP.NET WebForms
  2. Используйте NuGet, чтобы добавить библиотеку Ninject.Web (, которая также отключит библиотеки Ninject.Web.Common и Ninject)
  3. Зарегистрируйте свой настраиваемые привязки в приложении _Метод Start/NinjectWebCommon.cs/RegisterServices
  4. Используйте внедрение атрибутов на ваших страницах

Отлично работает в веб-приложениях ASP.NET.

Проблема в том, что я хочу использовать Ninject для DI на веб-сайте ASP.NET , а не в веб-приложении.

Я зарегистрировал пользовательские привязки в NinjectWebCommon / RegisterServices.:

private static void RegisterServices(IKernel kernel)
{
    kernel.Bind().To();
}

На веб-страницу я вставляю их.:

public partial class _Default : System.Web.UI.Page
{
    [Inject]
    public ITestRepository _repository { get; set; }

    protected void Page_Load(object sender, EventArgs e)
    {
        System.Diagnostics.Trace.WriteLine(_repository.ExecuteOperation());
    }
}

Всегда генерируется исключение нулевой ссылки, а точка останова внутри NinjectWebCommon.cs никогда не достигается -, в отличие от веб-приложения.

Что еще нужно сделать, чтобы Ninject 3 заработал на веб-сайте?

5
задан Community 23 May 2017 в 10:29
поделиться