Autofac: resolución de dependencias con parámetros
Actualmente estoy aprendiendo la API para Autofac, y estoy tratando de entender lo que me parece un caso de uso muy común.
Tengo una clase (para este ejemplo simple 'MasterOfPuppets') que tiene una dependencia que recibe a través de la inyección del constructor ('NamedPuppet'), esta dependencia necesita un valor para construirse con (nombre de cadena):
public class MasterOfPuppets : IMasterOfPuppets
{
IPuppet _puppet;
public MasterOfPuppets(IPuppet puppet)
{
_puppet = puppet;
}
}
public class NamedPuppet : IPuppet
{
string _name;
public NamedPuppet(string name)
{
_name = name;
}
}
Registro ambas clases con sus interfaces, y luego quiero resolver IMasterOfPuppets, con una cadena que se inyectará en la instancia de 'NamedPuppet'.
Intenté hacerlo de la siguiente manera:
IMasterOfPuppets master = bs.container.Resolve<IMasterOfPuppets>(new NamedParameter("name", "boby"));
Esto termina con un error de tiempo de ejecución, por lo que supongo que Autofac solo intenta inyectarlo en 'MasterOfPuppets'.
Entonces mi pregunta es, ¿cómo puedo resolver solo 'IMasterOfPuppets' y pasar argumentos de parámetros a su dependencia, de la manera más elegante? ¿Otros contenedores de ioc tienen mejores soluciones para ello?