2010-10-09 18 views
2

J'ai un conteneur Windsor.Génération de proxy d'interface DynamicProxy Castle

J'ai un ILazyComponentLoader (si elle importe) et une interface (ISomething) avec un intercepteur attribut dans.

[Interceptor(typeof(DynamicImplementationInterceptor)] 
public interface ISomething 

Je veux Windsor utiliser ProxyGenerator.CreateInterfaceProxyWithoutTarget lors de la résolution de l'interface via container.Resolve<ISomething>() pour que mon DynamicImplementationInterceptor peut mettre en œuvre tout comportement à la demande, externe.

Je n'arrive pas à trouver ce scénario exact dans la documentation ... lorsque j'enregistre ISomething en utilisant Component.For<ISomething>()...., comment puis-je spécifier ce comportement? (actuellement je reçois une erreur sur le type étant abstrait ou interface, donc il ne peut pas être instancié ...)

Merci!

Répondre

2

Windsor omettra automatiquement la cible lorsque vous enregistrez un composant avec un intercepteur et aucune mise en œuvre, par exemple .:

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

Pas besoin Interceptor attribut

+0

merci cool. Je pensais que j'avais essayé et obtenu quelque chose au moment de l'enregistrement sur l'enregistrement nécessitant une mise en œuvre, mais je vais essayer agian. – Jeff