我们有一个大型ASP.NET MVC应用程序,我们在其中使用Autofac for IoC。
我们的项目包含一个名为StoreInformationService的服务,可用于检索有关我们商店的各种信息。
StoreInformationService有一个名为OpeningHours的属性,它返回一个名为OpeningHours的类,该类在许多控制器中经常使用。
我想在Autofac中注册OpeningHours,以便我们的控制器可以在其构造函数中接受OpeningHours,而不关心StoreInformationService。
public MyController {
OpeningHours openingHours;
public MyController(OpeningHours openingHours) {
this.openingHours = openingHours;
}
...
}
我用一个相当混乱的RegistrationSource实现了这个目标,但是我觉得必须有一个简单的方法来做这个我忽略了吗?
请指出正确的方向。
答案 0 :(得分:2)
我想我已经知道了
builder.Register<OpeningHours>(c =>
{
var cc = c.Resolve<StoreInformationService>();
return cc.OpeningHours;
});