温莎城堡的默认构造函数被调用,而不是一个依赖构造

考虑下面的代码。

[TestMethod] public void CanResolveILoggerTest() { var Container = new Castle.Windsor.WindsorContainer(); Container.Register( Component.For<Castle.Core.Logging.ILogger>() .ImplementedBy<Castle.Core.Logging.TraceLogger>(), Component.For<NeedsLogger>() ); var blah = Container.Resolve<NeedsLogger>(); } public class NeedsLogger { public NeedsLogger() { throw new Exception("container shouldn't resolve me"); } Castle.Core.Logging.ILogger logger; public NeedsLogger(Castle.Core.Logging.ILogger logger) { this.logger = logger; } }

为什么默认NeedsLogger构造函数被调用,而不是一个具有依赖性。

--------------解决方案-------------

最有可能的,因为记录仪还没有准备好(它在等待自己的依赖,以提供)。

我强烈建议,而不是这样做,你使用日志记录工具,它会照顾注册,并提供记录器为你的/

分类:C# 时间:2015-03-14 人气:0
本文关键词: C#,温莎城堡
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.615 (s). 10 q(s)