我正在使用Rebus。在AutofacContainerAdapter(https://github.com/rebus-org/Rebus/blob/master/src/Rebus.Autofac/AutofacContainerAdapter.cs)中,他们调用以下代码行:
builder.Register(a => MessageContext.GetCurrent()).ExternallyOwned();
如何设置我的MessageHandler构造函数以便Autofac可以找回这种类型?如果我理解正确,当我在构造函数中使用IMessageContext
时,它将不会被传递,因为上面的代码中没有.As<IMessageContext>()
。
答案 0 :(得分:1)
观察:https://github.com/rebus-org/Rebus/blob/master/src/Rebus/MessageContext.cs显示:
public static IMessageContext GetCurrent()
{
}
因此注册为IMessageContext
。如果没有明确说明,lambda注册会隐式注册为lambda的返回类型。