首页 > 其他分享 >PostSharp使用步骤

PostSharp使用步骤

时间:2023-11-07 10:13:07浏览次数:40  
标签:步骤 MethodExecutionArgs postsharp vs PostSharp 使用 override public

使用postsharp的意图:

详细log记录,异常处理,鉴权验证。

 

步骤:

1、下载postsharp的vs插件安装,并重启vs

2、选中某项目,右键属性,有postsharp选项卡,点击‘add postsharp to this project’。

 

3、在以上项目写新建的日志异常处理类,并继承postsharp

[Serializable]
    [AttributeUsage(AttributeTargets.Method, AllowMultiple = false, Inherited = true)]
    public class AppLogAttribute: OnMethodBoundaryAspect
    {
        public override void OnEntry(MethodExecutionArgs args)
        {
            LogUtil.WriteSLog("方法开始进入");
        }

        public override void OnExit(MethodExecutionArgs args)
        {
            LogUtil.WriteSLog("方法结束退出");
        }
}

 

4、在使用日志异常的项目中,也引入postsharp

5、在方法或类声明上一行添加特性名称

  [AppLog]
  public UserInfo UserLogin()

 

6、编译运行测试

标签:步骤,MethodExecutionArgs,postsharp,vs,PostSharp,使用,override,public
From: https://www.cnblogs.com/thingk/p/17814402.html

相关文章

  • Django动态创建表模型,并使用drf
    序列化器fromrest_frameworkimportserializersclassMySerializer(serializers.ModelSerializer):"""序列化器"""classMeta:model=None#可以设置为None,动态生成之后,再通过反射来重新设置。fields='__all__'......
  • 使用counter64解决通过SNMP获取网络流量数据不准问题
    网络流量实时速率是如何计算的?首先我们要知道网络流量实时带宽是如何计算出来的,我们先拿接口流入流量来举例子。通过SNMP的ifInOctets键值,我们可以获取到接口流入数据量的累计总量。那么如果我们想要计算流入流量的带宽速率,只需要固定一个时间间隔(比如30s),在前后分别获取一次累计......
  • 在NestJS应用程序中使用 Unleash 实现功能切换的指南
    前言近年来,软件开发行业迅速发展,功能开关(FeatureToggle)成为了一种常见的开发实践。通过功能开关,可以在运行时动态地启用或禁用应用程序的特定功能,以提供更灵活的软件交付和配置管理。对于使用NestJS框架构建的应用程序而言,实现功能开关也是一项重要的任务。而Unleash是一个......
  • 如何在 Linux 中配置使用 SSD (固态驱动器)
    当我在运行 Linux 的计算机上安装我的第一块固态驱动器(SSD)后,我开始探索如何用好它们。SSD在操作方式上与传统磁性驱动器不同,并且它们需要在软件上另行处理以达到功能优化。传统磁盘驱动与ssd的不同在传统磁盘驱动器上,删除时所删除的文件不会从磁盘中完全删除。这就是为什么......
  • .NET(C#) Linq Concat和Union以及Select和SelectMany的使用及区别
    1、Concat操作符Concat操作符用于连接两个序列,生成一个新序列。usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;namespaceConsoleApplication{classProgram{staticvoidMain(s......
  • .NET C# 9.0 record和with的定义及使用
    C#9引入record,它一种可以创建的新引用类型,而不是类或结构。C#10添加了recordstructs,以便可以将记录定义为值类型。记录与类不同,区别在于record类型使用基于值的相等性。两个记录类型的变量在它们的类型和值都相同时,它们是相等的。with表达式在C#9.0及更高版本中可用,......
  • .NET(C#) LinkedList、Queue<T>和Stack<T>的使用
    本文主要介绍.NET(C#)中,LinkedList链表、Queue<T>队列和Stack<T>堆栈的使用,以及相关的示例代码。1、LinkedList(链表)链表中元素存储内存中是不连续分配,每个元素都有记录前后节点,节点值可以重复,不能通过下标访问,泛型的使用保证类型安全,可以避免装箱拆箱,找元素就只能遍历,查找不方......
  • .NET(C#) Linq GroupBy和GroupJoin的使用
    Linq是LanguageIntegratedQuery的简称,它是微软在.NETFramework3.5里面新加入的特性,用以简化查询查询操作。本文主要介绍.NET(C#)中Linq的GroupBy和GroupJoin操作符1、GroupBy操作符GroupBy操作符类似于SQL语言仲的GruopBy语句,这里的GroupBy操作符用于将输入序列中的元素进......
  • wsl wangEdit 的使用与注意事项( vue2 版本)
    注:vue2版本的nodeJs版本有限制,要是16或者17;1.安装wangEditoryarnadd@wangeditor/editor@wangeditor/editor-for-vue 2.使用示例<template><divstyle="border:1pxsolid#ccc;"><!--工具栏--><Toolbarstyl......
  • .NET(C#) Cast和OfType的使用
    Linq是LanguageIntegratedQuery的简称,它是微软在.NETFramework3.5里面新加入的特性,用以简化查询查询操作。本文主要介绍.NET(C#)中Linq的Cast和OfType操作符。1、Cast操作符Cast操作符用于将一个类型为IEnumerable的集合对象转换为IEnumerable<T>类型的集合对象。也就是非......