我有一个名为ImageUploadService的服务类,它处理组合图像路径和将图像保存到服务器的一些复杂操作。它将在其构造函数中需要一个Controller.Server对象的实例,该实例最终来自类HttpServerUtilityBase。我使用Unity.MVC5来管理依赖项,它给了我这个错误:
The type HttpServerUtilityBase does not have an accessible constructor.
那么我该如何解决这个问题呢?我认为这是一个更复杂的问题,因为Controller.Server不能直接在Controller的构造函数中访问,只能在控制器的操作中使用。有人知道是否可以在Controller.Server上使用依赖注入?如果是这样,怎么样?
答案 0 :(得分:0)
使用Unity,您需要注册HttpServerUtilityWrapper
,如下所示:
container.RegisterType<HttpServerUtilityBase, HttpServerUtilityWrapper>(
new TransientLifetimeManager(),
new InjectionConstructor(HttpContext.Current.Server));
关键是容器配置为使用HttpContext.Current.Server
调用传递InjectionConstructor
对象的构造函数。