在 Autofac 中,可以使用事件处理程序将某些代码与事件关联起来。常见的一个问题是如何将依赖项注入到事件处理程序方法中。下面是一个示例:
首先需要定义一个事件:
public class MyEvent { }
然后定义一个事件处理程序,需要注入依赖项:
public class MyHandler { private readonly ILogger _logger;
public MyHandler(ILogger logger)
{
_logger = logger ?? throw new ArgumentNullException(nameof(logger));
}
public void Handle(MyEvent ev)
{
_logger.Log("Handling event");
}
}
最后,将事件处理程序注册到 Autofac 容器中:
var builder = new ContainerBuilder();
builder.RegisterType
使用事件时,需要通过 Autofac 解析事件处理程序实例,然后将其绑定到事件:
var handler = container.Resolve
通过以上代码,依赖项 ILogger 就能够在事件处理程序方法中正确注入。