Я переезжаю некоторый код от замка 2.5.2 до 3.0, у меня есть набор предопределенных регистраций (в моем загрузочном коде), что делает некоторые вещи, основываясь на конвенциях, таких как:замок Виндзор 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);
}
})
);
в Windsor 2.5.2 класс ComponentRegistration имеет свойство ServiceType, в 3.0 есть свойство Services, но оно «внутренне защищено».
Управление моими соглашениями зависит от того, что мне нужно знать, какие услуги.
Как я могу получить эту информацию?
.m
В настоящее время я частично разрешил ему доступ к свойству Services в ComponentRegistration с помощью отражения, но это PITA. –