Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 26892|Отговор: 0

[.NET Core] ASP.NET Core използва Autofac за реализиране на IOC инжекция

[Копирай линк]
Публикувано в 7.05.2019 г. 16:32:23 ч. | | | |
ASP.NET Core dependency injection използва IOC контейнера, който идва с нея
https://www.itsvse.com/thread-7562-1-1.html
(Източник: Architect_Programmer)

ASP.NET Core използва Autofac за реализиране на IOC инжекция
https://www.itsvse.com/thread-7563-1-1.html
(Източник: Architect_Programmer)

ASP.NET Core използва Autofac за реализиране на AOP прихващане
https://www.itsvse.com/thread-7566-1-1.html
(Източник: Architect_Programmer)

IOC контейнерът, който идва с ASP.NET Core, е лек и няма много функции, а само основни функции.

Тази статия ще използва Autofac, за да обясни както конструкторите, така и инжекцията на атрибути.

Autofac е страхотен IoC контейнер за Microsoft .NET 4.5, Silverlight 5, приложения на Windows Store и приложения за Windows Phone 8. Той може да управлява зависимости между класовете, така че приложението да може лесно да се модифицира с нарастването на мащаба и сложността. Имплементирайте .

Версията на проекта за .NET Core е: 2.1.301

Инсталиране на Autofac.Extensions.DependencyInjection

Инсталирайте чрез nuget със следната команда:



Написахме 3 интерфейса и 3 класа за имплементация, както следва:



Инжекция на конструктор на контролер

Първо, нека модифицираме кода на ConfigureServices в Startup по следния начин:

Забележка: Връщащата стойност на ConfigureServices е променена на IServiceProvider.

Код на контролера:

Управлявайте проекта, както е показано по-долу:



Инжекция на атрибути на контролер Autofac

Модифицирайте метода ConfigureServices в Startup по следния начин:

Код на контролера:

Управлявайте проекта, както е показано по-долу:



Ключови моменти за отбелязване:

  • Услуги. AddMvc(). SetCompatibilityVersion(CompatibilityVersion.Version_2_1).AddControllersAsServices();
  • ПубличноITestService1 _testService1 { get; декорация; }


Тъй като настроих интерфейса на услугата на частен в началото, инжекцията винаги е null.

Ресурси:Входът към хиперлинк е видим.




Предишен:ASP.NET Core dependency injection използва IOC контейнера, който идва с нея
Следващ:ASP.NET Урок за използване на логове на Core ILogger
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com