tengo la siguiente interfaz:Usando StructureMap con la envoltura log4net
public interface ILogger
{
void Debug(string message, params object[] values);
void Info(string message, params object[] values);
void Warn(string message, params object[] values);
void Error(string message, params object[] values);
void Fatal(string message, params object[] values);
}
y la siguiente implementación:
public class Log4netLogger : ILogger
{
private ILog _log;
public Log4netLogger(Type type)
{
_log = LogManager.GetLogger(type);
}
public void Debug(string message, params object[] values)
{
_log.DebugFormat(message, values);
}
// other logging methods here...
}
Mi idea era utilizar StructureMap para crear instancias de la clase Log4netLogger con el uso del tipo de la clase que hizo la tala Sin embargo, no puedo entender cómo pasar el tipo de la clase que llama a structuremap para que pueda pasarse al constructor de la implementación del registro. Cualquier consejo sobre cómo hacer eso (o una mejor manera) sería muy apreciado.
La necesidad de fábricas cuando se usa structuremap generalmente se puede eliminar utilizando un "ConstrutedBy" con una lambda como método de fábrica. http://structuremap.sourceforge.net/InstanceExpression.htm#section13 – KevM