我從城堡2.5.2移動一些代碼到3.0,我有一組預定義的註冊(在我的引導代碼),做基於公約,如一些東西:城堡溫莎3.0 ComponentRegistration「服務類型」
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
目前我已部分解決它使用反射訪問ComponentRegistration上的服務屬性,但是PITA。 –