PostSharp
文章平均质量分 85
dz45693
我是一个软件开发人员,有较强的责任心,是一个典型的技术爱好者。在此希望能认识更多好朋友。
展开
-
用PostSharp来做异常处理
代码如下: class Program { static void Main(string[] args) { string filePath = @"C:\log.txt"; Tr原创 2011-09-03 13:29:12 · 3908 阅读 · 0 评论 -
C# 用Attribute实现AOP事务 [C# | AOP | Attribute | ContextAttribute | IContributeObjectSink | IMessageSink
前言使用Attribute来实现方法级别事务一直是我的梦想,浅谈Attribute [C# | Attribute | DefaultValueAttribute]有体现我的无奈,Attribute确实是真真切切的非侵入式的东西(其实我是想侵入的: ) ),前有DUDU的Attribute在.net编程中的应用系列文章,但是总是离想象和需求有那么点出入,通过三天的努力,Google的...转载 2018-04-25 10:53:13 · 2490 阅读 · 0 评论 -
AOP - C# Fody中的方法和属性拦截
很久很久以前用过postsharp来做AOP, 大家知道的,现在那东东需要付费,于是尝试了一下Fody,但是发现Fody跟新太快了,所以大家在安装fody的时候尽力安装老的版本:packages.config<?xml version="1.0" encoding="utf-8"?><packages> <package id="Cauldron.Inte...原创 2018-10-25 19:00:26 · 7325 阅读 · 1 评论 -
编译时MSIL注入--实践Mono Cecil(1)
下面的两张图来自 Cecil 网站,通过它我们大概知道 Cecil 类型结构,看上去和 Reflection 类似。 1. 反编译 获取程序集方法的 IL 代码。 代码原形:public class Class1{ public void Test() { Console.WriteLine("Hello, World!"); }}转载 2012-09-03 09:08:27 · 4192 阅读 · 0 评论 -
.NET中AOP方便之神SheepAspect
SheepAspect 简介以及代码示列: SheepAspect是一个AOP框架为.NET平台,深受AspectJ。它静织目标组件作为一个编译后的任务(编译时把AOP代码植入)。多有特性时,可根据参数值设置先后进入顺序下面开始代码实现之旅:一、新建控制台程序:方案名称:SheepAectTest二、NuGet上搜索Sheep转载 2016-09-24 11:22:46 · 3245 阅读 · 0 评论 -
利用Mono.Cecil动态修改程序集来破解商业组件(仅用于研究学习)
Mono.Cecil是一个强大的MSIL的注入工具,利用它可以实现动态创建程序集,也可以实现拦截器横向切入动态方法,甚至还可以修改已有的程序集,并且它支持多个运行时框架上例如:.net2.0/3.5/4.0,以及silverlight程序官方地址:http://www.mono-project.com/Cecil 首先,我先假想有一个这样的商业组件,该组件满足了以下条件:1.转载 2012-09-03 08:58:24 · 3692 阅读 · 0 评论 -
浅谈VS编译自定义编译任务—MSBuild Task(csproject)
在上一篇浅谈.NET编译时注入(C#-->IL)中我们简单的反编译查看了几种c#语法糖和PostSharp在编译成IL时为我做的MSIL注入。紧接着在这节,要来看的就是MSBuild Task。在我们的代码预编译过程中我们可以创建我们自己的任务Task。下面我们就开始做一个简单的转载 2011-09-07 09:52:05 · 3910 阅读 · 0 评论 -
MSBuild + MSILInect实现编译时AOP-改变前后对比
实现静态AOP,就需要我们在预编译时期,修改IL实现对代码逻辑的修改。Mono.Cecil就是一个很好的IL解析和注入框架,参见编译时MSIL注入--实践Mono Cecil(1)。 我的思路为:在编译时将加有继承制MethodInterceptBaseAttribute标转载 2011-09-07 09:55:22 · 2998 阅读 · 0 评论 -
编译时MSIL注入--实践Mono Cecil(1)
紧接上两篇浅谈.NET编译时注入(C#-->IL)和浅谈VS编译自定义编译任务—MSBuild Task(csproject),在第一篇中我们简单研究了c#语法糖和PostSharp的MSIl注入,紧接第二篇中我们介绍了自定义MSBuild编译任务(记得有位老兄发链接用 MS转载 2011-09-07 09:53:04 · 3382 阅读 · 0 评论 -
C# 获取调用函数 参数名称和值
StackTrace stackTrace = new StackTrace(); ParameterInfo[] parameters = stackTrace.GetFrame(1).GetMethod().GetParameters(); 如上代码在调用微软的A原创 2011-08-22 21:28:30 · 13741 阅读 · 4 评论 -
ASp.net Core EF ActionFilterAttribute AOP
在项目中经常遇到一些数据的修改,很多时候业务方需要一个修改日志记录,这里我们计划用mssql数据库来存放日志记录,用EF来操作,记录日志可以用mvc的ActionFilterAttribute 来完成也可以用AOP来完成。以前在asp.net的AOP用的是IMessageSink这里我们计划用Castle.DynamicProxy来完成。准备工作:创建数据库表:CREATE TABL...原创 2019-08-28 11:01:40 · 2893 阅读 · 0 评论