Создать прокси класса в замке Виндзор - PullRequest
0 голосов
/ 17 июля 2011

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

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 Ответ

1 голос
/ 17 июля 2011

Представьте класс как сервис для вашего компонента.

container.Register(
   Component.For<SomeClass,ISomeInterface>().Lifestyle.Whatever.Interceptors<SomeInterceptor>()
);
...