Создать прокси класса в замке Виндзор

Я пытаюсь создать средство, которое добавит некоторый перехватчик в зарегистрированный класс на основе атрибута класса. Это мое средство:

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>()
);
Другие вопросы по тегам