C# 使用KingAOP面向切面编程
1. 在Nuget中安装KingAOP
2. 日志DEMO
public class Test : IDynamicMetaObjectProvider
{
[LogAspec]
public void TestMethod()
{
Console.WriteLine("输出正文来呀");
throw new ArgumentNullException("user name could not be null");
} public DynamicMetaObject GetMetaObject(System.Linq.Expressions.Expression parameter)
{
// need for AOP weaving
return new AspectWeaver(parameter, this);
}
} public class LogAspec : OnMethodBoundaryAspect
{
public override void OnEntry(MethodExecutionArgs args)
{
Console.WriteLine("OnEntry: Hello KingAOP");
}
public override void OnException(MethodExecutionArgs args)
{ Console.WriteLine("OnException: Hello KingAOP"); }
public override void OnSuccess(MethodExecutionArgs args)
{
Console.WriteLine("OnSuccess: Hello KingAOP");
} public override void OnExit(MethodExecutionArgs args)
{
Console.WriteLine("OnExit: Hello KingAOP");
}
}
public class LoggingHelper
{
private const String _errLogFilePath = @"D:\log.txt"; public static void WriteLine(String message)
{ var logContent = string.Format("[{0}]{1}\r\n", DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"), message);
File.AppendAllText(_errLogFilePath, logContent); }
}
3. 调用DEMO
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web; namespace WebApplication2
{
class Program
{
static void Main(string[] args)
{
dynamic test = new Test();
try
{
test.TestMethod();
}
catch (Exception ex)
{ } Console.Read();
} }
}
C# 使用KingAOP面向切面编程的更多相关文章
- AOP 面向切面编程, Attribute在项目中的应用
一.AOP(面向切面编程)简介 在我们平时的开发中,我们一般都是面对对象编程,面向对象的特点是继承.多态和封装,我们的业务逻辑代码主要是写在这一个个的类中,但我们在实现业务的同时,难免也到多个重复的操 ...
- AOP面向切面编程的四种实现
一.AOP(面向切面编程)的四种实现分别为最原始的经典AOP.代理工厂bean(ProxyFacteryBean)和默认自动代理DefaultAdvisorAutoProxyCreator以及Bea ...
- spring入门(四)【面向切面编程】
开发过程中很多时候会用到日志.事务等操作,这些操作如果要写在业务代码中会相当麻烦,这时就会用到面向切面编程(AOP),AOP作为一种编程思想,和OOP有着不同的侧重点,面向对象侧重于万事万物皆对象,而 ...
- 面向切面编程AOP
本文的主要内容(AOP): 1.AOP面向切面编程的相关概念(思想.原理.相关术语) 2.AOP编程底层实现机制(动态代理机制:JDK代理.Cglib代理) 3.Spring的传统AOP编程的案例(计 ...
- Spring-AOP面向切面编程
AOP是面向切面编程,区别于oop,面向对象,一个是横向的,一个是纵向. 主要解决代码分散和混乱的问题. 1.概念: 切面:实现AOP共有的类 通知:切面类中实现切面功能的方法 连接点:程序被通知的特 ...
- AOP 面向切面编程
AOP http://blog.csdn.net/xiang_j2ee/article/details/6851963 Android 支持 AspectJ 这个库来实现面向切面编程. 使用 Apac ...
- 关于面向切面编程Aspect Oriented Programming(AOP)
最近学到spring ,出来了一个新概念,面向切面编程,下面做个笔记,引自百度百科. Aspect Oriented Programming(AOP),面向切面编程,是一个比较热门的话题.AOP主要实 ...
- Javascript aop(面向切面编程)之around(环绕)
Aop又叫面向切面编程,其中“通知”是切面的具体实现,分为before(前置通知).after(后置通知).around(环绕通知),用过spring的同学肯定对它非常熟悉,而在js中,AOP是一个被 ...
- 简单理解——面向切面编程(AOP)
在传统的编写业务逻辑处理代码时,我们通常会习惯性地做几件事情:日志记录.事务控制及权限控制等,然后才是编写核心的业务逻辑处理代码.当代码编写完成回头再看时,不禁发现,扬扬洒洒上百行代码中,真正用于核心 ...
随机推荐
- redis储存中文,客服端读取出现乱码
[root@cache03 ~]# redis-cli -h 192.168.1.112 -p 6379 192.168.1.112:6379> set chen 陈林 OK 192.168.1 ...
- vim -d file01 file02 diff file01 file02 对比两文件的不同
[root@86 vhosts]# vim -d defaul.conf.bak zabbix.xinxianm.com.conf server { | server { listen 80; | l ...
- action(一)
//CCAnimation是封装动画功能的类,它可以看作是由若干个_CCSpriteFrame对象组成的序列,精灵按照顺序切换它们,就形成了动画.CCAnimation也有内存池, //此处的a ...
- Spring学习10-SpringMVC入门
二.SpringMVC请求处理流程 其中Front controller :前端控制器 Controller:后端控制器 三.Spring核心组件及请求处理流程
- spring oauth2相关资料
理解OAuth 2.0 *****http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html Secure REST API with oauth2 ...
- js 控制不同客户端 访问不同CSS js
function loadCSS(flag) { var t='.css'; if((navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios ...
- jquery头文件的引入
<script type="text/javascript" src="/library/js/jquery/jquery-1.9.1.min.js"&g ...
- [内核]Linux UserSpace和Kernel之间如何联系
转自:http://blog.csdn.net/dreaming_my_dreams/article/details/8272586 应用层和驱动的衔接,一直是一个老大难问题,若弄不清楚,总觉得驱动写 ...
- 《C++ Primer》笔记-#include,#ifndef
1.理解 #include 指示是怎样工作的 #include 设 施是 C++ 预处理器的一部分.预处理器处理程序的源代码,在编译器之前运行. C++ 继承了 C 的非常精细的预处理器.现在的 C+ ...
- NameNode机制和DataNode机制
首先我们看一下NAMENODE: 我们已经知道了NAMENODE作为DATANODE的管理者,其重要性不言而喻,那么NAMENODE是怎么管理数据的呢? 首先,我们看一下上面这张图,每次客户端读写数据 ...