MVC 3 ninject绑定延迟评估参数
-
27-10-2019 - |
题
我想用延迟计算的参数绑定我的控制器。 通用标签
然后我有下一个绑定: 通用标签
问题出在lambda函数上。我想返回Server.MapPath(“ /”)...但是我在c对象中没有请求上下文。如何发送?
解决方案
我对Ninject不太熟悉,但是您应该能够在容器中注册提供商,以便能够解析基因标记代码。这样,HttpContextBase
现在可以将IFilesRepository
用作构造函数参数,当创建HttpContextBase
的实例时,容器将使用提供程序将其注入。
要注册提供者(使用委托人来解决服务), 通用标签
但是请注意,由于基于每个Web请求创建了IFilesRepository
,因此最有可能需要将IFilesRepository
的生活方式更改为“每个Web请求”的生活方式,因此您不希望在具有更长寿命的基因标记代码。您可能希望抽象出“映射路径”功能,以便拥有更长寿命的基因标记代码。
其他提示
由于服务器变量与当前HttpContext相关,因此您将不得不在FilesManager类中检索它(如果需要的话,请使用单独的Interface)
不隶属于 StackOverflow