2010-12-01 2 views
1

я делаю какой-нибудь проект в замке Виндзоре и у меня есть некоторые проблемы с перехватчиком крюком в конфигурационном файле я создал класс, который impements IProxyGenerationHook:замок Виндзор перехватчики селекторов и крючки

public class LoggingProxyGenerationHook : IProxyGenerationHook 
{ 

    #region IProxyGenerationHook Members 

    public void MethodsInspected() 
    { 
     //throw new Exception("The method or operation is not implemented."); 
    } 

    public void NonVirtualMemberNotification(Type type, System.Reflection.MemberInfo memberInfo) 
    { 
     //throw new Exception("The method or operation is not implemented."); 
    } 

    public bool ShouldInterceptMethod(Type type, System.Reflection.MethodInfo methodInfo) 
    { 
     return methodInfo.Name.StartsWith("Save", StringComparison.Ordinal); 
    } 

    #endregion 
} 

Все, что я хочу сделать, это для перехвата методов, имя которых начинается с «Сохранить» и динамически подключается к ним в файле конфигурации. Кроме того, в конфигурационном файле у меня есть следующие:

<component id="LoggingAspect" type="DynamicInterceptor.LoggingAspect, DynamicInterceptor"></component> 
<component id="LoggingProxyGenerationHook" type="DynamicInterceptor.LoggingProxyGenerationHook, DynamicInterceptor"></component> 
<component id="TestClass1" type="TestClasses.TestClass1, TestClasses"> 
<interceptors hook ="${LoggingProxyGenerationHook}"> 
<interceptor>${LoggingAspect}</interceptor> 
</interceptors> 
</component> 

Я полагаю, что я делаю что-то неправильно в конфигурационном файле. Любые идеи?

+1

так, что не работает так, как можно было бы ожидать? –

+1

Что значит не фильтровать? Не вызывается или его возвращаемое значение игнорируется? Или что-то другое? Будьте более сложными, если вы хотите, чтобы кто-то помог вам, не оставляйте людей догадываться. –

+1

@nikolavas: Это нечестно сказать. Krzysztof потратил много своего времени и сил на замок, даже улучшив документацию на замок. –

ответ

2

Works for me. (Windsor/Ядро 2.5.2)

+0

Наверное, проблема в версии Castle. Я использую версию 2.0 (совместимую с .net framework 2.0). Большое спасибо за ваш ответ. – nikolavas

+0

@Mauricio Scheffer, не могли бы вы обратить внимание на этот вопрос http://stackoverflow.com/q/10547690/800261. Большое спасибо. –

Смежные вопросы