回答

1

沒有,Spring.NET勉強有守則配置,所以自動登記不可用的。

1

Spring.net使用不同的方法,它們具有依賴於屬性的CodeConfig,基本上,您在類中設置了一些屬性,以便DI容器知道需要注入哪些類。您可以找到更多信息here

對我來說,配置IOC的最佳方式是使用xml文件,因爲即使在生產環境中,您也可以在不編譯任何內容的情況下控制應用程序的行爲。

1

還有一個使用Spring.AutoRegistration的選項。與Unity AutoRegistration一起使用的相同概念。

http://rafaelnaskar.blogspot.com.br/2012/12/springautoregistration-fluent.html

https://www.nuget.org/packages/Spring.AutoRegistration

var context = new GenericApplicationContext(); 
    context.Configure() 
      .IncludeAssembly(x => x.FullName.StartsWith("Company.ApplicationXPTO")) 
      .Include(x => x.ImplementsITypeName(), Then.Register().UsingSingleton() 
        .InjectByProperty(If.DecoratedWith<InjectAttribute>)) 
      .ApplyAutoRegistration(); 

     var context = new GenericApplicationContext(); 
     context.Configure() 
      .Include(If.DecoratedWith<NamedAttribute>,Then.Register().UsingSingleton().InjectByProperty(If.DecoratedWith<InjectAttribute>)) 
      .Include(If.Implements<IController>, 
       Then.Register().UsingPrototype().InjectByProperty(If.DecoratedWith<InjectAttribute>)) 
      .ApplyAutoRegistration(); 



     var context = new GenericApplicationContext(); 
     context.Configure() 
      .IncludeAssembly(x => x.FullName.StartsWith("Spring.AutoRegistration.Test")) 
      .Include(x => x.GetInterfaces().Length > 0, 
       Then.Register().WithNamedAttributeIfExists().UsingPrototype() 
        .InjectByProperty(If.DecoratedWith<InjectAttribute>)) 
      .ApplyAutoRegistration(); 
相關問題