一部のコードを 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