Я узнаю о контейнере внедрения зависимостей Unity и всегда вижу много такого кода:
using (IUnityContainer container = new UnityContainer())
{
container
.RegisterType<IView, Form>()
.RegisterType<IService, Service>(
new InjectionProperty("Logger")
)
.RegisterType<ILogger, ConsoleLogger>()
.RegisterType<ILogger, Logger>("UI")
.RegisterInstance(new TraceSource("UI", SourceLevels.All))
.RegisterType<Presenter>(
new InjectionProperty("Logger",
new ResolvedParameter<ILogger>("UI")
)
);
Presenter presenter = container.Resolve<Presenter>();
//do stuff with presenter
}
Мой вопрос: почему цепочки вызовов связаны?То есть почему вышесказанное не может быть записано следующим образом:
using (IUnityContainer container = new UnityContainer())
{
container.RegisterType<IView, Form>();
container.RegisterType<IService, Service>(
new InjectionProperty("Logger")
);
container.RegisterType<ILogger, ConsoleLogger>();
container.RegisterType<ILogger, Logger>("UI");
container.RegisterInstance(new TraceSource("UI", SourceLevels.All));
container.RegisterType<Presenter>(
new InjectionProperty("Logger",
new ResolvedParameter<ILogger>("UI")
)
);
Presenter presenter = container.Resolve<Presenter>();
//do stuff with presenter
}
Или это чисто стиль?