我有这种情况,用户没有登录的事实阻止了我的控制器的依赖关系的构建。如何解决应用了Authorize属性的MVC控制器的鸡蛋依赖解决方案?
[Authorize]
class MyController : Controller
{
public MyController(MyService service)
{
}
}
class MyService
{
public MyService()
{
// requires information which only
// becomes known after the user logs in
}
}
我的问题是:我可以做一些事来引起MVC框架第一看看授权属性和然后解决控制器实例?
上面会更理想对我来说比下面的任一:
- 更改为MyService到能够处理用户登录之前创建的
- 与注射Func键
- 切换到服务点
理想情况下,我想翻转MVC框架中的一个开关,它说:“在解析控制器之前,检查你是否真的要使用它而不是t oss骨粉出来,由于缺乏授权和指导反正...”
您在哪里/如何注入服务? –
您可以查看Mark Seeman关于实现抽象工厂的文章:http://blog.ploeh.dk/2012/03/15/ImplementinganAbstractFactory/它涵盖了这种需求。只要工厂在注射根部定义,它不是真正的服务定位器。 –
你可以指定你的依赖为懒吗?例如,autofac让你注入懒惰。不知道有关统一 –
ChaseMedallion