【发布时间】:2011-07-27 14:46:07
【问题描述】:
这最终与设置 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;
}
}
【问题讨论】:
标签: c# dependency-injection unity-container log4net castle-windsor