ruszam jakiś kod od Zamku 2.5.2 do 3.0, mam zestaw predefiniowanych rejestracji (w moim kodu startowego), który wykonuje pewne rzeczy w oparciu o konwencje, takie jak:Zamek Windsor 3,0 ComponentRegistration „ServiceType”
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);
}
})
);
w Windsor 2.5.2 klasa ComponentRegistration ma właściwość ServiceType, w wersji 3.0 istnieje właściwość Services, ale jest "chroniona wewnętrznie".
Obsługa moich konwencji opiera się na fakcie, że muszę wiedzieć, jakie są usługi.
Jak mogę uzyskać te informacje?
.m
obecnie częściowo rozwiązałem go, uzyskując dostęp do właściwości Services w ComponentRegistration za pomocą odbicia, ale jest to PITA. –