using (var context = new BloggingContext()) { var blogs = context.Blogs .Include(blog => blog.Posts) .Include(blog => blog.Owner) .ToList(); }
Autofac集成了对DynamicProxy的支持,我们需要引用Autofac.Extras.DynamicProxy
,然后创建容器、注册服务、生成实例、调用方法,我们来看下面的代码:
ContainerBuilder builder = new ContainerBuilder(); //注册拦截器 builder.RegisterType<LoggerInterceptor>().AsSelf(); //注册基础服务 builder.RegisterType<ConsoleLogger>().AsImplementedInterfaces(); //注册要拦截的服务 builder.RegisterType<ProductRepository>().AsImplementedInterfaces() .EnableInterfaceInterceptors() //启用接口拦截 .InterceptedBy(typeof(LoggerInterceptor)); //指定拦截器 var container = builder.Build(); //解析服务 var productRepository = container.Resolve<IProductRepository>(); Product product = new Product() { Name = "Book" }; productRepository.Update(product);
【转载】EF Core & Castle DynamicProxy基本用法(AOP)
原文:https://www.cnblogs.com/sui84/p/12833845.html