Estoy tratando de encontrar la forma correcta de inyectar una auto fábrica que tome params, o incluso si esto es posible con Unity.Unity auto-factory con los parámetros
Por ejemplo Sé que puedo hacer esto:
public class TestLog
{
private Func<ILog> logFactory;
public TestLog(Func<ILog> logFactory)
{
this.logFactory = logFactory;
}
public ILog CreateLog()
{
return logFactory();
}
}
Container.RegisterType<ILog, Log>();
TestLog test = Container.Resolve<TestLog>();
ILog log = test.CreateLog();
Ahora lo que voy a gustaría ser capaz de hacer es:
public class TestLog
{
private Func<string, ILog> logFactory;
public TestLog(Func<string, ILog> logFactory)
{
this.logFactory = logFactory;
}
public ILog CreateLog(string name)
{
return logFactory(name);
}
}
Container.RegisterType<ILog, Log>();
TestLog test = Container.Resolve<TestLog>();
ILog log = test.CreateLog("Test Name");
Desafortunadamente esto no funciona. Puedo ver cómo puede configurar fábricas personalizadas para crear instancias en Unity, simplemente no parece financiar ningún ejemplo claro para este ejemplo.
Obviamente Podría crear mi propia fábrica pero estoy buscando una forma elegante de hacerlo en Unity y con un código mínimo.
¿Es posible hacer algo así, pero usando la inyección de constructor? – dmigo
@Chesheersky el ejemplo anterior usa inyección de constructor. – TheCodeKing
Correcto, mi error :) – dmigo