2011-01-30 49 views
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 
} 

或者这是一个纯粹的风格:为什么可以如下上面不写?

回答