windsor tutorial c# .net vb.net inversion-of-control castle-windsor

castle windsor c# tutorial



¿Puedes registrar una instancia existente de un tipo en el Contenedor Windsor? (1)

Hay un método AddComponentInstance en la propiedad Kernel del contenedor.

De las pruebas unitarias:

[Test] public void AddComponentInstance() { CustomerImpl customer = new CustomerImpl(); kernel.AddComponentInstance("key", typeof(ICustomer), customer); Assert.IsTrue(kernel.HasComponent("key")); CustomerImpl customer2 = kernel["key"] as CustomerImpl; Assert.AreSame(customer, customer2); customer2 = kernel[typeof(ICustomer)] as CustomerImpl; Assert.AreSame(customer, customer2); } [Test] public void AddComponentInstance_ByService() { CustomerImpl customer = new CustomerImpl(); kernel.AddComponentInstance <ICustomer>(customer); Assert.AreSame(kernel[typeof(ICustomer)],customer); } [Test] public void AddComponentInstance2() { CustomerImpl customer = new CustomerImpl(); kernel.AddComponentInstance("key", customer); Assert.IsTrue(kernel.HasComponent("key")); CustomerImpl customer2 = kernel["key"] as CustomerImpl; Assert.AreSame(customer, customer2); customer2 = kernel[typeof(CustomerImpl)] as CustomerImpl; Assert.AreSame(customer, customer2); }

En el contenedor Windsor IOC, ¿es posible registrar un tipo para el que ya tengo una instancia, en lugar de que el contenedor lo cree?