2008-09-18 7 views

Respuesta

13

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); 
    } 
+6

Como una actualización, esta técnica es considerado obsoleto. Use 'container.Register (Component.For () .Instance (myT));' en su lugar. – eouw0o83hf

+0

¿Son estas pruebas de la unidad suyas o están tomadas de alguna documentación del castillo? Si hay más de estos, ¿podría proporcionar un enlace? – joniba

Cuestiones relacionadas