1
我学习的团结依赖注入容器,而我总是看到很多这样的代码:为什么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
}
我的问题是,为什么在调用链? I.E.
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
}
或者这是一个纯粹的风格:为什么可以如下上面不写?
+1。它减少了噪音 - 第二个例子中的“容器”是冗余信息。 – TrueWill 2011-01-30 22:05:55