Seif, I think you hit the point.
You said that have had a similar problem, did you find a suitable
workaround?
Does anybody know if there is a way to force ATM to register its
interceptor with a class proxy (a proxy extending my ServiceImpl in
the example), so that it may be able to wrap protected method
correctly?

Thanks again,
Andrea

On 29 Gen, 16:33, Seif Attar <[email protected]> wrote:
> I had a similar problem, I believe you have a "leaking this" problem:
>
> http://kozmic.pl/2009/10/30/castle-dynamic-proxy-tutorial-part-xv-pat...
>
> The proxy is an interface proxy, which works with composition,
> wrapping calls to the implementation, so by the time the Operation()
> gets called, you are already in your class, and calling
> MyTransactionalMethod() from there will call the method on the class
> bypassing the proxies. Don't know if there is a solution to this.
> Mayebe someone else can advise.
>
> On Sat, Jan 29, 2011 at 10:34 AM, clinamen <[email protected]> wrote:
> > have a WCF service instance activated through a ServiceBehavior that
> > configures Castle Windsor as IoC container as uses it to resolve the
> > service implementation (and so all its dependency graph).
>
> > Windsor container is configured with NHibernateFacility set up through
> > configuration and these facilities set up in code:
> > TransactionFacility, TypedFactoryFacility.
>
> > The trouble here is that the TransactionInterceptor does not get
> > invoked around the call to MyTransactionalMethod() made in the body of
> > Operation() method. If I set the 'Transaction' attribute on the
> > Operation() method the interceptor gets invoked as expected. It seems
> > to me as the proxy is created against service interface only.
> > Moreover, stepping through TransactionFacility code can be noted that
> > the interceptor is correctly added to the component model during model
> > inspection. As a note, attached to this service I have also a custom
> > interceptor registered as last, but I think it is not influent at all.
>
> > I'm rather new to Castle Windsor and probably I'm missing something
> > about DynamicProxy and interceptors implementation, so I ask here for
> > an explanation to this behavior and how I can obtain the one I need.
>
> > Below a skeleton of the components involved. For brevity I omit
> > explaining the reason why I cannot annotate Operation() with
> > 'Transaction', but it is due to the fact that I need to "do stuff"
> > after the transaction is closed.
>
> > Thanks in advance, Andrea
>
> > // Code skeleton
> > [ServiceContract]
> > public interface IService {
> >    [OperationContract]
> >    void Operation();
> > }
>
> > [Transactional]
> > public class ServiceImpl : IService {
> >    public void Operation() {
> >        MyTransactionalMethod();
> >        // do stuff out of transaction scope
> >    }
>
> >    [Transaction(TransactionMode.Requires)]
> >    protected virtual void MyTransactionalMethod(){
> >        // stuff that deals with Dao(s).
> >    }
> > }
>
> > --
> > 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 
> > athttp://groups.google.com/group/castle-project-users?hl=en.

-- 
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