public void AddDelegateInAspectCore_WithRefFromContainer_UseInterceptorInAutofac_Test() { var serviceContext = new ServiceContext(); serviceContext.AddDelegate <TaskService>(p => new TaskService()); serviceContext.AddDelegate <ITaskService, TaskServiceWithRef>(p => new TaskServiceWithRef(p.ResolveRequired <TaskService>())); var containerBuilder = new ContainerBuilder(); containerBuilder.Populate(serviceContext); containerBuilder.RegisterDynamicProxy(serviceContext.Configuration, config => { config.Interceptors.AddTyped <Interceptor>(m => true); }); var container = containerBuilder.Build(); var taskService = container.Resolve <ITaskService>(); Assert.Equal(3, taskService.Run()); // Intercept twice }
public void AddDelegateInAspectCore_UseInterceptorInAspectCore_Test() { var serviceContext = new ServiceContext(); serviceContext.AddDelegate <ITaskService, TaskService>(p => new TaskService()); serviceContext.Configuration.Interceptors.AddTyped <Interceptor>(m => true); var container = serviceContext.Build(); var taskService = container.ResolveRequired <ITaskService>(); Assert.Equal(2, taskService.Run()); }
public void AddDelegateInAspectCore_UseInterceptorInAutofac_Test() { var serviceContext = new ServiceContext(); serviceContext.AddDelegate <ITaskService, TaskService>(p => new TaskService(), Lifetime.Singleton); var containerBuilder = new ContainerBuilder(); containerBuilder.Populate(serviceContext); containerBuilder.RegisterDynamicProxy(serviceContext.Configuration, config => { config.Interceptors.AddTyped <Interceptor>(m => true); }); var container = containerBuilder.Build(); var taskService = container.Resolve <ITaskService>(); Assert.Equal(2, taskService.Run()); container.Dispose(); Assert.True(taskService.Disposed); }