|
|
Postitatud 2020-9-12 20:57:21
|
|
|
|

Autofac on suurepärane. NET IoC konteinerid. See haldab klassidevahelisi sõltuvusi, nii et rakendust saab hõlpsasti muuta, kui mastaap ja keerukus kasvavad. See on rakendatud, käsitledes tavalisi .NET klasse komponentidena. Olen ka Autofaci konteinerite klišee ja olen kirjutanud palju artikleid:
Loo uus projekt Core 3.1 ASP.NET ja viidata autofac-teemalistele pakettidele nugeti kaudu järgmiselt:
Loome uue ITest liidese ja rakenduse, kood on järgmine:
Loo uus BaseController baasklassi kontroller, teised kontrollerid pärivad abstraktse klassi, lisa ITest omadus baasklassile ja kood on järgmine:
Las WeatherForecastController pärib BaseController abstraktse klassi, lisades järgmise testimeetodi:
ConfigureContainer meetod Startup-klassis registreerib liidese ja määrab kontrolleri atribuudi sisendi, kood on järgmine:
Proovi külastada:Hüperlingi sisselogimine on nähtav.
NullReferenceException erik on tsiteeritud tühjas sõnumis, nagu näidatud järgmisel joonisel:
NullReferenceException: Object reference not set to an instance of an object.
PassKonstruktor süstitakse ITest liidesesse, selle meetod kutsutakse, test läbib ja seda saab normaalselt kutsuda。
Anomaaliate põhjused
Kontrolleri rakendus on erilisem, kontroller ei lahenda ega aktiveeri vaikimisi omaenda konteineri kaudu, seda haldab MVC ise, kuid Microsoft pakub seda meetodit:
Saad panna kontrolleri kasutama oma konteinerit, kutsudes meetodi AddControllersAsServices(), mille peamine lähtekood on järgmine:
ConfigureServices meetod vaikimisi Startup-objektis on konfigureeritud järgmiselt:
Me muudame selle järgmiselt:
Või:
ServiceBasedControllerActivator lähtekood on järgmine:
Kui seade on seadistatud, laadi kontroller otse DI konteinerist, kontroller parsib teenuse Autofacist ja seadistatud omaduste süstimine hakkab kehtima. Nagu allpool näidatud:
Lõpuks lisatakse asp.net tuuma lähtekoodi aadress:
Hüperlingi sisselogimine on nähtav.
(Lõpp)
|
Eelmine:Hangfire lisab andmeid tavaliselt, kuid jätkab täitmist erandi tõttuJärgmine:Kuidas kuvada Sqlite andmeid täiustatud tabelites E4A-ga?
|