我有一个简单的命令架构,包含基本的CommandBus,CommandHandlers,这是我的命令总线的简化版本。
public class CommandBus : ICommandBus
{
private readonly ICommandHandlerFactory _commandHandlerFactory;
public CommandBus(ICommandHandlerFactory commandHandlerFactory)
{
this._commandHandlerFactory = commandHandlerFactory;
}
public CommandSummary Send<T>(T command) where T : ICommand
{
try
{
var handler = _commandHandlerFactory.GetHandler<T>();
handler.Handle(command);
}
catch (Exception e)
{
return CommandSummary.Fail(e.Message, command);
}
return CommandSummary.Success(command, message: command.Message);
}
}
我想补充的是能够在后台执行命令,或者在以后安排命令。我正在使用相对较新的库HangFire(还没有SO标签),用于后台作业调度。
问题
我正在使用InstancePerApiRequest作用域注册我的许多服务,当您在后台运行作业时,或者稍后,它不再是该作用域的一部分。
问题
使用Autofac,如何注册服务以便在多个实例范围内解析它?
答案 0 :(得分:1)
有关使用每个请求范围的相当详细的常见问题解答以及在Autofac doc网站上处理“混合”用例的方法:http://autofac.readthedocs.org/en/latest/faq/per-request-scope.html