Could I then specify two Interceptors and use the IInterceptorSelector
on the ProxyGenerationOptions instead of a ProxyGenerationHook to
switch between a NoOpInterceptor and the Interceptor i'd like to use
on specific methods?

On Sep 12, 3:13 pm, "Ayende Rahien" <[EMAIL PROTECTED]> wrote:
> All methods, sorry.
> When you skip proxying a method, you don't generate that, which is a problem
> when the CLR validates this interface.
> In other words, this is only useful for classes, not interfaces.
>
> On Sat, Sep 13, 2008 at 12:12 AM, Ayende Rahien <[EMAIL PROTECTED]> wrote:
> > If you have an interface, you must implement all items.
>
> > On Sat, Sep 13, 2008 at 12:11 AM, Troy Gould <[EMAIL PROTECTED]> wrote:
>
> >> I'm a bit confused about IProxyGenerationHook.  Maybe I'm not using it
> >> correctly (there is zero docs on it), or it's not working correctly?
> >> I'm using 1.0 Release Candidate 3 - September 20, 2007 from the
> >> download pages.
>
> >> I have an Interceptor that I've created.  However, I would like the
> >> Interceptor to only intercept methods with a specific attribute on
> >> them.  I was originally doing all of this from the Interceptor itself,
> >> but then started looking at the ProxyGenerationOptions class.  It
> >> allows me to specify a IProxyGenerationHook.  So, I implemented the
> >> following class:
>
> >>    internal class CacheableMethodHook : IProxyGenerationHook
> >>    {
> >>        public bool ShouldInterceptMethod(Type type, MethodInfo
> >> memberInfo)
> >>        {
> >>            object[] customAttributes =
> >> memberInfo.GetCustomAttributes(typeof (CacheableAttribute), true);
> >>            return customAttributes.Length > 0;
> >>        }
>
> >>        public void NonVirtualMemberNotification(Type type, MemberInfo
> >> memberInfo)
> >>        {
> >>            return;
> >>        }
>
> >>        public void MethodsInspected()
> >>        {
> >>            return;
> >>        }
> >>    }
>
> >> However, what happens is that I get the following:
> >> Method 'QueryAll' in type
> >> 'ISiteDaoProxy46feaa53f3264bc2aa67ff254bb0925e' from assembly
> >> 'DynamicProxyGenAssembly2, Version=0.0.0.0, Culture=neutral,
> >> PublicKeyToken=null' does not have an implementation.
>
> >> When the ShouldInterceptMethod of CacheableMethodHook runs, it does
> >> return false for the QueryAll method.  I was expecting that when it
> >> returns false, the the Interceptor just calls invocation.Proceed()
> >> automatically.  Is the the intention or have I missed something in the
> >> use of IProxyGenerationHook?
--~--~---------~--~----~------------~-------~--~----~
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