`
joerong666
  • 浏览: 417815 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

10分钟入门AOP:用PostSharp普及一下AOP

阅读更多

10分钟入门AOP:用PostSharp普及一下AOP

PostSharp是一个比较强调易学易用的AOP框架,在这之前我接触过AspectJ,Spring.当然花的时间也不多,不过一直感觉不好掌握,似乎AOP是比较难的东西。今天看到这篇英文论文里面的说明,似乎并不那么难以掌握。参考下图,对比一下两组概念。


PS用了我们熟知的东西,而没有引入新名词,这是它聪明的地方。看表格右边的一组概念,事件(还不太理解为什么说是meta),事件处理器,aspect=定制的attribute, 唯一新鲜的是multicasting,实际上可以理解为一个通配表达式。

下面再用一个简单例子:

<!---->public class LogAttribute : OnMethodBoundaryAspect
{
public override void OnEntry (MethodExecutionEventArgs eventArgs )
{  Console . WriteLine (" Entering the method {0}." , eventArgs . Method );
}

public override void OnExit (MethodExecutionEventArgs eventArgs )
{
  Console . WriteLine (
" Leaving the method {0}." , eventArgs . Method );
}

}


class Program
{
[Log]
static void Main ()
{
    Console . WriteLine (" Hello , world .");
}
}

//multicasting 说明对
MyApp . BusinessObjects命名空间使用Log

[ assembly : Log(
AttributeTargetTypes =
" MyApp . BusinessObjects .*" ,
AttributeTargetMemberAttributes =
MulticastAttributes . Public )]

从这例子看非常简明清晰,的确易学易用。

分享到:
评论

相关推荐

    aop demo PostSharp

    PostSharp 是一款用于 .NET Framework 的 AOP 库,它在编译时自动插入切面代码,无需显式使用代理或拦截器。PostSharp 提供了简单且强大的方式来实现切面,通过使用特性(Attributes)来标记需要增强的代码。在本例...

    PostSharp实现AOP 实例

    在.NET环境中,PostSharp是一个强大的AOP框架,它通过编译时织入的方式实现切面,使得切面的应用对代码侵入性更小。 **PostSharp工作原理**: PostSharp在编译期间动态插入额外的代码,这些代码是切面的实现。当...

    PostSharp 2.0

    在实际开发中,PostSharp可以通过以下步骤使用: 1. **安装**:下载并安装PostSharp-2.0.10.1.exe,这将为Visual Studio添加PostSharp的集成支持。 2. **引入注解**:在C#代码中,使用PostSharp提供的注解(如`...

    PostSharp 2.1 - Sample Code

    在"PostSharp 2.1 - Sample Code"这个压缩包中,你将找到一系列的示例项目,这些项目展示了如何利用PostSharp进行AOP编程。学习这些示例对于理解如何在C#应用程序中使用PostSharp至关重要。以下是一些关键的知识点:...

    [AOP编程框架].Sharpcrafters.PostSharp.v2.0.9.3

    PostSharp是.NET平台上的一款著名AOP框架,由Sharpcrafters公司开发。在给定的标题和描述中,我们可以看到版本号为2.0.9.3,这通常表示这是一个更新后的稳定版本,包含了关键生成器(Keygen)和补丁(Patch),可能...

    PostSharp1.5安装包(X86和X64)以及示例

    PostSharp使用静态织入方式实现AOP,其连接点非常丰富,使用简单,而且相对其它一些.NET平台上的AOP框架来说,PostSharp较为轻量级,但是功能却一点也不逊色,因此是我比较喜欢的一个AOP框架。更多关于PostSharp的...

    PostSharp_6.1.15_Ultimate-Enterprise-Professional_Downloadly.ir.rar

    PostSharp是一款针对.NET框架的高性能、自动化AOP(面向切面编程)工具。它通过编译时处理,为C#和VB.NET代码提供声明式特性,使得开发者可以在不改变主体代码的情况下实现如缓存、事务管理、日志、性能监控等跨切面...

    PostSharp2.0.8安装文件

    PostSharp与Visual Studio的无缝集成使得开发者可以像使用其他VS插件一样便捷地应用AOP技术。 **PostSharp核心功能:** 1. **属性注解(Attribute-Based Aspects)**:PostSharp支持定义和使用自定义的属性,这些...

    .net平台AOP的实现

    在.NET平台上实现AOP,我们可以借助于不同的库和技术,如PostSharp、Unity、Autofac等。下面我们将深入探讨.NET平台AOP的实现方法和应用。 首先,我们需要理解AOP的基本概念。AOP的核心是切面(Aspect),它封装了...

    AOP.in..NET

    AOP in .NET: Practical Aspect-Oriented Programming 296 pages Publisher: Manning Publications; Pap/Psc edition (June 25, 2013) Language: English ISBN-10: 1617291145 ISBN-13: 978-1617291142 ...

    PostSharp-1.0.7.262-Source.zip

    在本案例中,我们使用的版本为PostSharp-1.0.7.262,它适用于Visual Studio 2005及更高版本,这意味着开发者可以无缝地将其集成到现有的.NET开发环境中。 PostSharp的主要特性包括: 1. **注解驱动**:PostSharp...

    C# AOP学习DEMO

    - 特性的定义和使用:创建自定义特性(如`LoggingAttribute`),并将其应用于方法。 - 拦截器的实现:编写拦截器类,实现特定的接口或约定,用于在方法执行前后插入额外的行为。 - 注册和配置:在依赖注入容器中注册...

    PostSharp 4.2 User Manual

    #### 二、使用PostSharp入门 **选择和创建方面** - 开发人员可以选择现有的方面或自定义方面。 - 方面可以通过属性的形式应用到类、方法或其他语言结构上。 **安装和部署PostSharp** - 安装PostSharp Tools for ...

    AOP:C#中面向方面的编程

    面向方面的编程(AOP)是一种编程范式,它旨在提高软件设计的模块化程度,通过将关注点分离来实现。在传统的面向对象编程(OOP)中,代码通常按照功能进行组织,但在AOP中,关注点是按照它们在程序中的作用来划分的...

    C#版本AOP注入

    在C#中,实现AOP注入主要有两种方式:使用IL weaving工具(如PostSharp)在编译时进行切面织入,或者使用第三方库(如Unity、Autofac、Castle Windsor)在运行时进行动态代理。这里我们主要讨论后者,因为它是更灵活...

    利用C#实现AOP常见的几种方法详解

    面向切面编程(AOP,Aspect Oriented Programming)是一种编程范式,旨在通过将关注点分离,使得系统设计更加模块化。AOP的核心思想是将应用程序的横切关注点(如日志、事务管理、安全检查等)从核心业务逻辑中解耦...

    C# .net Aop 动态截获异常

    在C#中,我们通常使用代理类或第三方库(如PostSharp、Castle Windsor等)来实现AOP。 在"C# .NET Aop 动态截获异常"的场景中,我们将重点关注如何捕获和处理程序运行过程中的异常。这通常涉及到以下几个关键步骤:...

Global site tag (gtag.js) - Google Analytics