2016-08-02 6 views
-2

Пожалуйста, не могли бы вы помочь мне понять, где я должен использовать объекты в DI C#. Какова цель этого?Какова основная цель Object Scopes DI C#

kernel.Bind<Shogun>().ToSelf().InSingletonScope(); 
+0

, какие библиотеки вы используете? что такое ядро? где используется код? дайте нам немного информации! – MichaelThePotato

+2

Потерпеть, чтобы сделать это самостоятельно? https://github.com/ninject/ninject/wiki/Object-Scopes – 3615

+0

Я прочитал эту статью, но до сих пор не могу понять, почему определить SingletonScope, когда я не могу использовать интерфейс? –

ответ

2

Сфера применения aka Lifetime Scope - очень важная часть каждого приложения, но особенно когда речь идет об инъекции зависимостей.

С помощью инъекции зависимостей вы не только выдаете контроль над реализацией, но также и при разрушении этого экземпляра.

Установка срока службы инструктирует DI контейнер, когда для уничтожения экземпляра и создать новый, если новый запрос для данного типа приходит в

Есть несколько различных времен жизни:.

  • Singleton: Ровно один экземпляр определенного компонента создается за время жизни приложения.
  • Transient: каждый раз, когда требуется экземпляр, создается новый.
  • PerRequest: один экземпляр создается и повторно используется каждый запрос. Запроса может быть много чего. Для ASP.net mvc запрос обычно является HTTP-запросом. Для приложения форм Windows запрос должен определяться приложением, обычно в пределах определенного блока «использования».

Ninject особенности можно найти здесь: https://github.com/ninject/ninject/wiki/Object-Scopes