Генерация прокси интерфейса Castle DynamicProxy - PullRequest
2 голосов
/ 09 октября 2010

У меня есть WindsorContainer.

У меня есть ILazyComponentLoader (если это имеет значение) и интерфейс (ISomething) с включенным атрибутом Interceptor.

[Interceptor(typeof(DynamicImplementationInterceptor)]
public interface ISomething

Я хочу, чтобы Windsor использовал ProxyGenerator.CreateInterfaceProxyWithoutTarget при разрешении интерфейса через container.Resolve<ISomething>(), чтобы мой DynamicImplementationInterceptor мог реализовывать все поведение по требованию извне.

Я не могу найти этот точный сценарий в документации ... когда я регистрирую ISomething с помощью Component.For<ISomething>()...., как мне указать, что я хочу это поведение? (в настоящее время я получаю сообщение об ошибке типа абстрактный или интерфейс, поэтому его невозможно создать ...)

Спасибо!

1 Ответ

2 голосов
/ 10 октября 2010

Windsor автоматически пропустит цель, когда вы зарегистрируете компонент с перехватчиком и без реализации, например:

var container = new WindsorContainer();
container.Register(Component.For<DynamicImplementationInterceptor>());
container.Register(Component.For<ISomething>()
    .Interceptors(InterceptorReference.ForType<DynamicImplementationInterceptor>()).First);

Нет необходимости в каком-либо атрибуте перехватчика

...