José,

As for the additional interceptor, use it to switch the target of
invocation to proxy target instead of proxy itself.

var target = (invocation.Proxy as
IProxyTargetAccessor).DynProxyGetTarget();
(invocation as IChangeProxyTarget).ChangeInvocationTarget(target);
invocation.Proceed();

this should set you up until we get a proper fix for that.

Krzysztof



On Jul 6, 8:08 am, Krzysztof Koźmic <[email protected]>
wrote:
> José,
>
> I only have a brief moment, so I can't verify the actual behavior, but
> here's what I *think* it may be.
>
> It looks like the fact that IC implements IA takes precedense over the
> fact that you're implementing proxy for IA in the first place, so the
> proxy treats IA as an additional interface, instead of target interface.
> The fact that you get proxy as a target is explained 
> here:http://kozmic.pl/archive/2009/07/01/castle-dynamic-proxy-tutorial-par...
>
> My workaround would be to insert additional interceptor that would take
> the target of proxy (invocation.Proxy as
> IProxyTargetAccessor).GetProxyTarget() and invoke method directly.
>
> It seems like it's part of a larger 
> bug:http://support.castleproject.org/projects/DYNPROXY/issues/view/DYNPRO...
>
> Please create a testcase and attach it to the issue.
>
> Krzysztof
>
> José F. Romaniello pisze:
>
> > I want a proxy with a target of the following scenrario:
>
> > I have three interfaces :
> >        -IA
> >        -IB
> >        -IC : IA, IB   --> (IC inherit IA and IB)
>
> > The target is an implementation of "IA" and I want the proxy implements
> > IC and IB of course.
>
> > proxyGenerator.CreateInterfaceProxyWithTargetInterface(typeof(IA),
> >                             new[] { typeof(IC) },                      
> > //Aditional interfaces.
> >                             anInstanceImplementingIA, options,
> >                             new[] { new SampleInterceptor() });
>
> > The problem; If I do it in this way calls to members of "IA" never
> > reached the target.
> > The InvocationTarget of those members is the Proxy, instead
> > "anInstanceImplementingIA".
>
> > Thanks.
>
>
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Castle Project Users" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/castle-project-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to