Wim*_*nen 2 c# dependency-injection
当我们使用依赖注入容器时,理想情况下我们只从中提取单顶级对象(例如,一个实例Program),并让容器自动组合应用程序的其余部分.
但是,有时候有些对象不是其他任何东西的依赖,但我们希望它们在对象图中.例如,我可以有一个Notifier带有Bazinga事件的类,这个BazingaConsoleLogger类:
public class BazingaConsoleLogger
{
private readonly Notifier notifier;
public BazingaConsoleLogger(Notifier notifier)
{
this.notifier = notifier;
this.notifier.Bazinga += HandleBazinga;
}
private void HandleBazinga(object sender, EventArgs args)
{
Console.WriteLine("Bazinga!");
}
}
Run Code Online (Sandbox Code Playgroud)
因为BazingaConsoleLogger不是任何东西的依赖,它不会由依赖注入容器创建.解决这个问题的最佳方法是什么?
如果BazingaConsoleLogger是一个服务而不是任何依赖项,那么它不会在程序中的任何地方使用,因此可以删除该类.更少的代码FTW!:-)
我不认为这就是你的意思,你能否进一步解释你目前如何使用BazingaConsoleLogger?如果你是实际上是使用BazingaConsoleLogger,你已经有一个依赖(显性或不)BazingaConsoleLogger.
编辑:松散地连接事件我使用Windsor的事件接线工具.如果您的容器没有类似的东西,那么编码应该不难,这里是一般原则.
| 归档时间: |
|
| 查看次数: |
404 次 |
| 最近记录: |