我正在将一些代码从 Castle 2.5.2 移动到 3.0,我有一组预定义的注册(在我的引导代码中),它们根据以下约定执行一些操作,例如:
container.Register
(
AllTypes.FromAssemblyInDirectory( new AssemblyFilter( "." ) )
.IncludeNonPublicTypes()
.Where( t => conventions.IsViewModel( t ) && !conventions.IsExcluded( t ) )
.WithService.Select( ( type, baseTypes ) => conventions.SelectViewModelContracts( type ) )
.Configure( r =>
{
r.Properties( PropertyFilter.IgnoreAll );
if( conventions.IsShellViewModel( r ) )
{
r.LifeStyle.Is( LifestyleType.Singleton );
}
else
{
r.LifeStyle.Is( LifestyleType.Transient );
}
} )
);
在 Windsor 2.5.2 中,ComponentRegistration 类有一个 ServiceType 属性,在 3.0 中有一个 Services 属性,但是是“内部受保护的”。
我的约定处理依赖于我需要知道哪些是服务的事实。
我怎样才能得到这些信息?
.m