首页 > 其他分享 >autofac aop扩展

autofac aop扩展

时间:2024-12-10 23:53:32浏览次数:8  
标签:autofac Console void 扩展 WriteLine aop UserService public


class Program
{
     static void Main(string[] args)
     {
         //创建一个容器
         ContainerBuilder builder = new ContainerBuilder();

        //注册UserService
         builder.RegisterType<UserService>().As<IUserService>()
                  .EnableInterfaceInterceptors();//通过接口方式完成aop扩展
       
         builder.RegisterType<CustomInterceptor>();//通过接口方式完成aop扩展

        //从容器中解析出UserService
         IContainer container = builder.Build();
         IUserService a = container.Resolve<IUserService>();

        //执行UserService的方法
         a.show();
     }
}

//生产一个 UserService类
public class UserService : IUserService
{
     public void show()
     {
         Console.WriteLine("UserService 执行");
     }
}

[Intercept(typeof(CustomInterceptor))]//通过接口方式完成aop扩展
public interface IUserService
{
     void show();
}

image

using Castle.DynamicProxy;

namespace autofac_aop测试;

public class CustomInterceptor : IInterceptor
{
    public void Intercept(IInvocation invocation)
    {
        Console.WriteLine("================================================");
        Console.WriteLine("=================在XX业务逻辑前执行==============");
        Console.WriteLine("=================================================");
        invocation.Proceed();
        Console.WriteLine("===================================================");
        Console.WriteLine("=================在XX业务逻辑后执行================");
        Console.WriteLine("===================================================");
    }
}

标签:autofac,Console,void,扩展,WriteLine,aop,UserService,public
From: https://www.cnblogs.com/hlm750908/p/18598378

相关文章

  • API设计最佳实践:如何构建易于扩展和维护的RESTful API
    在当今的应用程序开发中,RESTfulAPI已经成为最流行的通信协议之一。REST(RepresentationalStateTransfer)是一种轻量级的架构风格,它利用HTTP协议进行数据传输,广泛用于前后端分离的系统中。构建一个高效、易于扩展且易于维护的RESTfulAPI,不仅能提升系统的可用性,还能为开发团队......
  • 一维非线性系统的自适应扩展卡尔曼滤波|自适应扩展卡尔曼滤波(AEKF)与经典扩展卡尔曼滤
    本文给出了一个MATLAB代码,实现一维自适应扩展卡尔曼滤波(AEKF)和常规扩展卡尔曼滤波(EKF)的对比,用于处理带有噪声的动态系统状态估计。给出源代码下载方式文章目录运行结果代码详解代码功能概述代码的应用源代码总结运行结果状态估计值绘制的曲线如下:误差曲线如下......
  • C# 扩展方法
    文章目录一、引言二、扩展方法的基本概念1.定义扩展方法的语法2.扩展方法的调用方式三、示例演示1.为内置类型添加扩展方法2.为自定义类型添加扩展方法四、扩展方法的注意事项1.扩展方法的优先级2.扩展方法的可见性3.避免过度使用五、总结一、引言  在......
  • .wstop扩展名勒索数据库恢复---惜分飞
    联系:手机/微信(+8617813235971)QQ(107644445)标题:.wstop扩展名勒索数据库恢复作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]操作系统文件被加密成.[[gmtaP2R5]].[[dataserver@airmail.cc]].wstop扩展名,类似运行的oracle数据库文......
  • 欧几里得算法 & 扩展欧几里得算法
    一、欧几里得算法欧几里得算法,也叫辗转相除,简称gcd,用于计算两个整数的最大公约数引理:\(\gcd(a,b)=\gcd(b,a\%b)\)证明:设\(r=a%b\),\(c=gcd(a,b)\)则\(a=xc\),\(b=yc\),其中\(x,y\)互质\(r=a\%b=a-pb=xc-pyc=(x-py)c\)......
  • 【前端知识】简单,可扩展的状态管理组件MobX
    文章目录概念MobX区分了应用程序中的以下三个概念:1.定义State并使其可观察2.使用Action更新State3.创建Derivations以便自动对State变化进行响应Derivations包括许多方式:Mobx区分了两种Derivation:3.1.通过computed对派生值进行建模3.2.使用reacti......
  • [深入探索FireStore Datastore模式:自动扩展与高性能的结合体]
    #引言在现代应用开发中,数据存储是不可或缺的一环。GoogleFirestore以其强大的扩展性与性能,为开发者提供了一种高效的数据存储解决方案。在这篇文章中,我们将深入探讨Firestore的Datastore模式,并学习如何使用它来保存、加载和删除Langchain文档。同时,我们还将探讨一些常见......
  • Task05&扩展01
    Task05条件IF语句控制程序中决策的部分一个例子deff(x):print("A",end="")ifx==0:print("B",end="")print("C",end="")print("D")如果输入f(0)打印出ABCD,否则打印出ADTips:不建议直接在冒号后面写条......
  • 基于 C# 编写的 Visual Studio 文件编码显示与修改扩展插件
    前言在软件开发过程中,尤其是在处理跨平台或来自不同来源的项目时,文件的编码格式往往会成为一个不可忽视的问题。不同的操作系统、编程语言和编辑器可能对文件编码有不同的支持和默认设置,这可能导致在打开一个文件时出现乱码、编译错误或运行时问题。今天大姚给大家分享一款基于C......
  • 扩展01:代码风格/python规范style
    一.风格介绍修饰的前提是“跑通”代码,也就是说先确保你的code没有任何bug这种“修饰”并不是对每一个都强制学习的内容二.缩进与换行1.缩进1.)如果有开始定界符,其余行的缩进需与开始定界符对齐。2.)需要额外的4个空格(长度相当于一个Tab键),以区分开传入参数,和其他内容。3.)空......