Simple Injector :
container.Register<Samurai>();
:
container.Register<Samurai, Samurai>();
- :
container.Register<Samurai, Samurai>(Lifestyle.Transient);
Register<TService, TImplementation>. , , TImplementation , TService.
Simple Injector, , (, Samurai) , (, , , , GetInstance<Something>()). , Simple Injector , , Simple Injector , ( Verify()), Simple Injector .
, GetInstance<TService> TService. :
container.Register<ICar, Lexus>();
var johnDoeLexus = new Driver(container.GetInstance<Lexus>());
, ICar, ICar, Lexus. Lexus TService, Simple Injector , Lexus. , :
container.Register<ICar, Lexus>();
container.Register<Lexus, Lexus>();
var johnDoeLexus = new Driver(container.GetInstance<Lexus>());
, , , ICar :
container.Register<ICar, Lexus>(Lifestyle.Singleton);
var instance1 = container.GetInstance<Lexus>();
var instance2 = container.GetInstance<Lexus>();
, GetInstance () , , Simple Injector () Lexus Lexus GetInstance.
AllowOverridingRegistrations. AllowOverridingRegistrations . , Register , Simple Injector . Simple Injector RegisterCollection. , :
container.RegisterCollection<ICar>(new[] { typeof(Lexus), typeof(Ferrari) });
:
var cars = container.GetAllInstances<ICar>();
:
public SomeType(IEnumerable<ICar> cars) {
this.cars = cars;
}
, RegisterCollection, GetInstance<ICar> , Simple Injector , .
API , , , . AllowOverridingRegistrations . , . . , . .