Создать прокси класса в замке Виндзор
Я пытаюсь создать средство, которое добавит некоторый перехватчик в зарегистрированный класс на основе атрибута класса. Это мое средство:
public class MyFacility : AbstractFacility
{
protected override void Init()
{
this.Kernel.ComponentRegistered += (s, h) =>
{
if (h.ComponentModel.Implementation.GetCustomAttributes(typeof(MyAttribute), false).Length > 0)
{
h.ComponentModel.Interceptors.Add(InterceptorReference.ForType<MyInterceptor>());
}
}
}
}
но так, когда я использую this
Ключевое слово в методе класса относится к целевому классу, а не к прокси-классу, и это делает некоторые фреймворки, которые я использую, не работают должным образом.
Мне нужно создать с помощью того же прокси, который создается с ProxyGenerator.CreateClassProxy<MyClass>()
метод.
Как мне этого добиться?
1 ответ
Решение
Выставьте класс как сервис для вашего компонента.
container.Register(
Component.For<SomeClass,ISomeInterface>().Lifestyle.Whatever.Interceptors<SomeInterceptor>()
);