依赖注入 – 如何使用Unity 2.0注入Log4Net ILog实现

前端之家收集整理的这篇文章主要介绍了依赖注入 – 如何使用Unity 2.0注入Log4Net ILog实现前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
最终这与设置log4Net有关,但一般来说,问题不是具体记录.

通常我想知道的是在Microsoft Unity 2.0中如何做,相当于与Castle.Facilities.Logging.LoggingFacility相同的东西.也就是声明对记录器依赖的能力,并使记录器使用注入对象的类型进行初始化.

在测试的精神上值得一千字,这里是我需要的:

class Logger_IOC_Tests
{
    //[Test] 
    public void Logger_should_be_initialized_with_the_type_of_the_object_that_is_using_it()
    {
        var container = new UnityContainer();
        /* Configuration Magic probably involiving registering either 
            * a custom IDependencyResolverPolicy or BuilderStrategy
            * goes here...
            */
        container.RegisterType<LoggerUser>(new ContainerControlledLifetimeManager());

        var user = container.Resolve<LoggerUser>();

        Assert.True(user.Logger.GetUserType() == user.GetType());
    }
}

interface ILogger
{
    Type GetUserType();
}

class Logger : ILogger
{
    private readonly Type _type;

    public Logger(Type type)
    {
        _type = type;
    }

    public Type GetUserType()
    {
        return _type;
    }
}

class LoggerUser
{
    public readonly ILogger Logger;

    public LoggerUser(ILogger logger)
    {
        Logger = logger;
    }
}
我不知道这是你正在寻找的,但我在几个月前看到它,当我看到你的问题时被提醒.我没有使用Unity,所以我不能真正比较你在链接上发布的内容.希望对您有用:

http://davidkeaveny.blogspot.com/2011/03/unity-and-log4net.html

猜你在找的设计模式相关文章