ValidationInterceptorRegistrar.cs 785 B

123456789101112131415161718192021222324
  1. using System.Reflection;
  2. using Abp.Application.Services;
  3. using Abp.Dependency;
  4. using Castle.Core;
  5. using Castle.MicroKernel;
  6. namespace Abp.Runtime.Validation.Interception
  7. {
  8. internal static class ValidationInterceptorRegistrar
  9. {
  10. public static void Initialize(IIocManager iocManager)
  11. {
  12. iocManager.IocContainer.Kernel.ComponentRegistered += Kernel_ComponentRegistered;
  13. }
  14. private static void Kernel_ComponentRegistered(string key, IHandler handler)
  15. {
  16. if (typeof(IApplicationService).GetTypeInfo().IsAssignableFrom(handler.ComponentModel.Implementation))
  17. {
  18. handler.ComponentModel.Interceptors.Add(new InterceptorReference(typeof(ValidationInterceptor)));
  19. }
  20. }
  21. }
  22. }