Autofac注册一个由另一个类创建的类

时间:2013-09-07 03:00:56

标签: asp.net-mvc dependency-injection inversion-of-control autofac

我们有一个大型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实现了这个目标,但是我觉得必须有一个简单的方法来做这个我忽略了吗?

请指出正确的方向。

1 个答案:

答案 0 :(得分:2)

我想我已经知道了

        builder.Register<OpeningHours>(c =>
        {
            var cc = c.Resolve<StoreInformationService>();
            return cc.OpeningHours;
        });