Dependency injection 温莎城堡:为BaseoDescriptor创建OnCreate

Dependency injection 温莎城堡:为BaseoDescriptor创建OnCreate,dependency-injection,castle-windsor,ioc-container,Dependency Injection,Castle Windsor,Ioc Container,你可能知道, “OnCreate”方法用于ComponentRegistration类,该类由Component.for调用创建。 为什么Classes.FromAssembly缺少此功能? 为什么不能对指定命名空间中的每个类使用OnCreate。 有解决办法吗 我想按如下方式进行: Classes .FromThisAssembly() .InSameNameSpaceAs<TInterface>() .OnCreate<TInterface>( insta

你可能知道, “OnCreate”方法用于ComponentRegistration类,该类由Component.for调用创建。 为什么Classes.FromAssembly缺少此功能? 为什么不能对指定命名空间中的每个类使用OnCreate。 有解决办法吗

我想按如下方式进行:

Classes
  .FromThisAssembly()
  .InSameNameSpaceAs<TInterface>()
  .OnCreate<TInterface>( instance => instance.Method());
类
.FromThisAssembly()中的
.InSameNameSpaceAs()
.OnCreate(instance=>instance.Method());

允许您根据约定注册组件,因此它不处理单个组件,而是处理组件集合;您不能使用fluent界面单独配置它们。但是,您可以使用该方法来操作每个组件以满足您的需要

Classes
  .FromThisAssembly()
  .InSameNameSpaceAs<TInterface>()
  .Configure(c => {
       c.OnCreate( instance => instance.Method())
  });
类
.FromThisAssembly()中的
.InSameNameSpaceAs()
.Configure(c=>{
c、 OnCreate(instance=>instance.Method())
});

还有一个
ConfigureFor
ConfigureIf
方法,可以让您过滤约定中要处理的组件。

我应该如何解释ConfigureFor表达式中的“组件”?它应该被视为“组件的所有后代”还是组件本身?我不知道确切的情况,从来没有使用过语法,但它对于组件本身是有意义的。不过最好自己查一下,我找不到documentation@Dmitry,您是否测试了关于组件/组件后代范围的后续问题?