.Net AOP(五) 各种IoC框架下实现AOP
来源:互联网 发布:matlab solve 数组 编辑:程序博客网 时间:2024/05/21 06:23
.Net AOP(五) 各种IoC框架下实现AOP
首先介绍几种笔者常见的IOC框架
Castle
Encase 是C#编写开发的为.NET平台提供的AOP框架。Encase 独特的提供了把方面(aspects)部署到运行时代码,而其它AOP框架依赖配置文件的方式。这种部署方面(aspects)的方法帮助缺少经验的开发人员提高开发效率。
NKalore是一款编程语言,它扩展了C#允许在.net平台使用AOP。NKalore的语法简单、直观,它的编译器是基于Mono C#编译器(MCS)。NKalore目前只能在命令行或#Develop内部使用。NKalore兼容公共语言规范CLS(Common Language Specification),它可以在任何.NET开发环境中使用,包括微软的Visual Studio .NET。
PostSharp读取.NET字节模块,转换成对象模型。让插件分析和转换这个模型并写回到MSIL。PostSharp使开发程序分析应用程序容易得像分析代码规则和设计模式,它使程序开发的思想变革为面向方面软件开发(AOSD/AOD)思想。
AspectDNG的目标是为.NET开发人员提供简单而功能强大的AOP-GAOP实现。它效仿java下的开源工具AspectJ 和 Spoon,成熟程度也很接近它们。
RAIL(Runtime Assembly Instrumentation Library) 开源项目可以在C#程序集加载和运行前进行处理控制调整和重新构建。C#在CLR中,我们已经能够动态加载程序集并且获得程序集中的类和方法,RAIL(Runtime Assembly Instrumentation Library)的出现填补了CLR处理过程中的一些空白。
SetPoint是一款.NET框架下的全功能(full-featured)AOP引擎.它着重为称为语义切点(semantic pointcuts)的定义依赖RDF/OWL的使用.它的功能为一个IL-level,highly dynamic weaver&LENDL,一个引人注目的定义语言、、、、、、
DotNetAOP为 CLR language提供AOP 框架基础属性。
NAop是一个DotNet下的AOP框架。
AspectSharp是DotNet下的免费AOP框架,它以Dynamic Proxies和XML作为配置文件。
一个Castle的实现
首先下载Castle.Windsor.dll
自定义Interceptor
public class MyInterceptor : IInterceptor { public void Intercept(IInvocation invocation) { PreProceed(invocation); invocation.Proceed(); PostProceed(invocation); } public void PreProceed(IInvocation invocation) { Console.WriteLine("方法执行前"); } public void PostProceed(IInvocation invocation) { Console.WriteLine("方法执行后"); } }用户注册接口和实现
public interface IUserProcessor { void RegUser(User user); } public class UserProcessor : IUserProcessor { public virtual void RegUser(User user) { Console.WriteLine("用户已注册。Name:{0},PassWord:{1}", user.Name, user.PassWord); } }客户端调用
public class Client { public static void Run() { try { ProxyGenerator generator = new ProxyGenerator(); MyInterceptor interceptor = new MyInterceptor(); UserProcessor userprocessor = generator.CreateClassProxy<UserProcessor>(interceptor); User user= new User() { Name = "lee", PassWord = "123123123123" }; userprocessor.RegUser(user); } catch (Exception ex) { throw ex; } } }
- .Net AOP(五) 各种IoC框架下实现AOP
- .Net AOP(五) 各种IoC框架下实现AOP
- .Net AOP 各种IoC框架下实现AOP
- spring.net 框架分析(五)AOP实现
- ioc aop 框架
- .net下AOP框架资料
- .Net下AOP的应用(1)--也说IoC与AOP
- Spring框架 AOP (五)
- 什么是AOP? AOP .Net 框架,AOP 资源
- .NET下的一些AOP框架介绍
- spring(IOC+AOP)
- 模拟实现spring框架的IOC跟AOP功能
- 自己实现的一个简易Spring框架(IoC+AOP)
- Spring框架IOC和AOP的实现原理
- java Spring框架IOC和AOP的实现原理
- AOP各种的实现
- AOP各种的实现
- AOP各种的实现
- Windows下安装python问题汇总
- 5-21 Hashing (25分)
- HDU2196 Computer(树形DP)
- Android 网络请求框架 Retrofit2.0实践使用总结
- centos7 常用命令
- .Net AOP(五) 各种IoC框架下实现AOP
- 文章标题
- android api-level
- leetcode 32. Longest Valid Parentheses
- Java实现二叉树
- 减治法-两个序列的中位数
- 5-24 地下迷宫探索 (30分)
- CCF-画图,用深搜与广搜解决填充问题
- hdoj-2045-不容易系列之(3)―― LELE的RPG难题