我想像这样使用我的子类:
throw new MyCustomException()
每当调用它时,我都想用相关 id 包装它,该相关 id 应该由服务注入。我想将它注入基类以避免那样写
throw new MyCustomException(correlationID)
但我不知道在应该通过构造函数注入完成的情况下如何做到这一点。
换句话说,我想将依赖注入到无参数构造函数中。类似的东西
class MyBaseException()
{
private IWorkingContext workingContext;
public MyBaseException()
{
this.workingContext = workingContext;
}
}
是的,我知道通常我需要这样做:
public MyBaseException(IWorkingContext workingContext)
但是希望这个构造函数 MyBaseException(IWorkingContext workingContext) 在没有参数的情况下被调用,所以最后我可以使用我的子类,比如 MyCustomException() 并将 workingContext 包装在其中。
我的温莎注册:
container.Register(Component.For<IWorkingContext>().ImplementedBy<WorkingContext>().LifeStyle.PerWebRequest)
我试过这种方法:
var containerAccessor = HttpContext.Current.ApplicationInstance as IContainerAccessor;
var container = containerAccessor.Container;
var operationContext = container.Resolve<IWorkingContext>();
但它不起作用(新对象由温莎创建)。