caSTLe-windsor - 温莎城堡 : Register class with internal constructor?

标签 castle-windsor

温莎城堡问题: 是否可以向容器注册一个具有内部构造函数的类?

谢谢 琼妮

最佳答案

是的,这是可能的。默认组件激活器只查找公共(public)构造函数。 您可以为考虑内部构造函数的组件提供自定义组件激活器,或者使用例如工厂来激活组件:

var container = new WindsorContainer()
    .AddFacility<FactorySupportFacility>()
    .Register( Component.For<Foo>()
                   .UsingFactoryMethod( () => new Foo() ) );
var foo = container.Resolve<Foo>();

但是,您真的应该首先重新考虑将 .ctor 设为内部。这样做很少是个好主意,尤其是当您无论如何都要将类作为组件暴露给外界时。

关于caSTLe-windsor - 温莎城堡 : Register class with internal constructor?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2370546/

相关文章:

asp.net-mvc-2 - 从 .NET MVC 1 迁移到 MVC 2 RC

asp.net-mvc - 我的 Razor View 的自定义基本页面类型,如何使用城堡温莎 Autowiring 属性?

c# - 在 Web API 应用程序中,我可以在什么时候拦截 URI 参数并相应地路由调用?

caSTLe-windsor - CaSTLe Windsor - 如何按名称解析?

c# - 如何在服务中获取 Controller 的 ModelState 以进行验证

c# - 如何构造函数注入(inject)仅在运行时已知的字符串? (温莎城堡)

sitecore - 如何将 Glass Mapper 3.3 与 Sitecore 7.x 和 Solr 4.7 结合使用

c# - CaSTLe Windsor 到 Unity - 你能像在 CW 中一样在 Unity 中自动配置吗?

caSTLe-windsor - 在 DAL 中使用 log4net 和 CaSTLe Windsor

dependency-injection - 在温莎城堡上携带 CreationContext.AdditionalArguments