Exemple #1
0
        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
        }
Exemple #2
0
        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());
        }
Exemple #3
0
        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);
        }