为什么Unity会被锁定?

Ben*_*key 1 c# dependency-injection unity-container

我正在学习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
}
Run Code Online (Sandbox Code Playgroud)

我的问题是为什么电话会被锁定?IE为什么以上不能写成如下:

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
}
Run Code Online (Sandbox Code Playgroud)

或者这纯粹是一种风格?

ono*_*nof 7

纯粹的风格.这是"流利"的风格.

http://en.wikipedia.org/wiki/Fluent_interface

  • 啊.所以它与jQuery在这个意义上的运作方式非常相似. (2认同)