Technology sharing

C# IOC continens dependentia iniectio et inversio dominii

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Inversio Imperium (IoC)

definition : Inversio imperii est consilium principale quod fluxum imperii in programmatibus traditis adversat. In exemplaribus programmandi traditis, dependentiae inter partes creantur et serventur interne ab ipsis componentibus. In inversione ditionis modus, haec dependentia a vase externo administratur (ut est ver compage, Microsoft.Extensions. Dependency Injection in NET, etc.). per externum continens.

principalis idea: movet creationem obiectorum, et administratione dependentiarum inter eas ab objectis ad continentia externa.

commodum

  • Reduce coitu: Dependentiae inter componentes non diutius durae coded sunt, ut componentes exsecutiones facilius restitui possint, ratio flexibilitas et conservabilitas melior.
  • Meliorem modularity: Singula elementa enucleari et examinari possunt independenter, quia non in certis exsecutionibus niti, sed in interfaces abstractas vel classes abstractas.
  • Facile temptare: Cum dependentiae inter partes extraneae sint, facilius est obiectis ludibriis uti vel stipulis testium ad simulandas clientelas pro unitate tentationis.

Dependentia Iniectio (DI)

definition : Dependentia iniectio est modus specificus ad obtinendum inversionem imperii. Transeuntes clientelas (officia vel obiecta) implicat in classes pro mittendo classes illas ipsas creare.

Modum ad animadverto

  • conditor iniectio : Dependentiae provisae sunt per constructorem classium. Haec est forma communissima et commendata DI in C#.
  • Res iniectio : clientelas per publicas classium proprietates assignare. Hic aditus flexibilitatem praebet, sed statum internum exponere potest ac encapsulationem minuere.
  • modum iniectio : Transi clientelas per modum parametri. Apta ad injiciendum solum clientelas certa methodo requiruntur.

IOC continens

definition :IOC continens compagem est ad objectum vitae cycli ac clientelas administrandum. automatice obiecta ex configuratione (qualia XML fasciculi, annotationes aut configurationis codicem) gignit et clientelas in objecta illa injicit.

effectus

  • Object creatio: Automatarie exempla objecta in configuratione fundant.
  • dependentiam iniectio: Injicere clientelas in objecta inversionem imperii consequi.
  • vita cycle procuratio: Curo curriculum vitae rerum, inter creationem, interitum et redivivus rerum facultates.

Utere IOC vasis ad administrare clientelas

In C#, variis vasis IOC uti potes ad clientelas administrandas, ut Microsoft.Extensions. DependencyInjection (in DI vase .NET Core et versionibus recentioribus constructum), Autofac, etc. Microsoft.Extensions.DependencyIniectio in exemplum sumit quo utitur IOC continentia ad clientelas in C# inceptis administrandis.

Gradus I: Register pro servitio

Officia typice usus est in .NET applicationesProgram.csor *Startup.cs(ASP.NET Core projects) usus est inIServiceCollectioninterface to register.

public void ConfigureServices(IServiceCollection services)
{
    services.AddSingleton<IMyService, MyService>(); // 将MyService注册为单例服务
    // 其他服务注册
}
  • 1
  • 2
  • 3
  • 4
  • 5
Gradus II: Inject clientelas

Inject clientelas in moderatoris, muneris vel alterius generis per constructor.

public class MyController : Controller
{
    private readonly IMyService _myService;

    public MyController(IMyService myService)
    {
        _myService = myService;
    }

    // ... 控制器的其他代码
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

In exemplo supradicto;MyControllerClassis per conditorem infunditurIMyServiceExsecutio instrumenti (i.e.MyService huiusmodi).Sic, cumMyControllerCum creatum est, continens IOC automaticeIMyServiceExsecutio constructor infunditur.

Cautiones
  • Usus interface-fundatur abstractiones: Malo interfaces aut classes abstractas pro dependens rationes ad flexibilitatem et testabilitatem augendam.
  • Overuse de vitare singletons: Singleton officia caute adhibenda sunt ad quaestiones civitatis relatas vitandas.
  • Monitor object vitae cycle: Intellige cyclum vitarum dependentium (singleton, scopum, transeuntem) ad usum resource efficaciter administrare.