Digamos que tiene un componente como estoCastillo de Windsor - cómo resolver los componentes en base a parámetros del constructor
public class MyComponent
{
public MyComponent(string name)
{
}
}
que básicamente quiere tener los parámetros del constructor proporcionados comporte como parte del identificador de componente cuando resolverlo. Si nunca lo resolvió con ese conjunto de parámetros, creará una nueva instancia.
En otras palabras, quiero modificar de alguna manera el siguiente test para tener éxito:
IWindsorContainer container = new WindsorContainer();
container.Register(Component.For<MyComponent>());
MyComponent a1 = container.Resolve<MyComponent>(new { name = "a" });
MyComponent a2 = container.Resolve<MyComponent>(new { name = "a" });
MyComponent b = container.Resolve<MyComponent>(new { name = "b" });
Assert.AreSame(a1, a2);
Assert.AreNotSame(a1, b);
Actualmente se produce un error porque va a crear una instancia con nombre = a, entonces devolver el mismo objeto para todos futuro nombre = ay nombre = b.
Gracias!
¿Estás ** seguro ** que quieres hacer esto en tiempo de resolución en lugar de tiempo de registro? –