2016-02-02 5 views
0

У меня есть следующее внутри моего метода ConfigureServices в классе Startup. Я добавляю экземпляр singleton ToastNotification, который является реализацией IToastNotification.ASP.NET Core 1 Инъекция зависимостей: тип реализации всегда null

public void ConfigureServices(IServiceCollection services) 
{ 
    services.AddInstance<IToastNotification>(new ToastNotification() 
     { 
     }); 
} 

Проблема заключается в том, что, когда я смотрю стоимость услуг во время отладки в конце этого метода, тип реализации IToastNotification службы null. Поэтому, когда я пытаюсь получить экземпляр Toastnotification из коллекции служб в контроллерах, он всегда равен нулю.

Это, как я получаю Toastnotification с помощью инъекции зависимостей

[FromServices] 
private IToastNotification ToastNotification { get; set; } 

Что я делаю неправильно?

ответ

2

Не используйте литье свойств, оно было удалено и не будет работать в будущих версиях: https://github.com/aspnet/Announcements/issues/115.

Вместо этого рассмотрите возможность использования инъекции зависимостей конструктора.

+0

Спасибо. Я сделал то, что ты сказал. Думаю, мне нужно внимательно следить за всеми изменчивыми изменениями. –

0

Использование инъекций конструктор зависимостей, вы можете сделать вещи, как, что:

// Register your service. 
services.AddInstance<IToastNotification>(new ToastNotification()); 

А в вашем контроллере:

public class HomeController : Controller 
{ 
    private readonly IToastNotification _toastNotification; 

    public HomeController(IToastNotification toastNotification) 
    { 
     _toastNotification = toastNotification; 
    } 

    ... 
} 
Смежные вопросы