我正在使用asp.net mvc控制器和构造函数注入服务IMyService
。 MyService
(implements IMyService
)在其构造函数中使用了一些上下文信息。此上下文信息由不同的第三方网站提供。创建MyService
实例需要上下文信息。
控制器的动作过滤器使用一些逻辑来确定该上下文信息是否可用。如果没有,则请求被重定向到另一个网站。问题是,控制器构造函数在控制器的过滤器之前由IoC容器调用。因此,如果未提供上下文信息,MyService
将抛出异常。
如何解决这种情况?
UPD :
似乎DelegatingHandler
是一种可行的方式。
答案 0 :(得分:1)
如果您需要快速解决方法,可以使用从构造函数中删除IMyService
,然后将其作为控制器的属性添加,并使用您的IoC服务定位器在方法需要时解析它控制器。