`
chelsea
  • 浏览: 117830 次
  • 来自: ...
社区版块
存档分类
最新评论

nucleus.mockaop.net:opensource .net aop framework

    博客分类:
 
阅读更多

Nucleus.MockAOP.Net简介

一、功能

  • 基于配置文件,动态载入Aspects

  • 对不同的类,指定不同的Aspects (基于正则表达式或者继承关系)

  • 对类的不同方法,指定不同的Aspects (基于正则表达式)

  • 指定Aspects的相对执行顺序

  • 提供了一种ChainOfResponsbility模式的RealProxy实现,并提供了该RealProxy所需的Aspect的框架,及三个示例Aspect,分别用来计算执行时间、打印输入参数和返回值、和捕捉所有异常

二、限制

  • 未找到好方法将Aspect变为无状态,导致每new一个正常对象,都会附带若干Aspect对象,性能受影响

  • 未找到好方法最灵活的配置类、方法与Aspects的关联,现在配置信息散落在各处,加大了对象之间的耦合,加重了Aspect对象的负担,如现在每个Aspect对象都要判断当前被调用的原始方法是否匹配在配置文件中的配置,若匹配才切入,否则不予理睬

  • 尚未实现RealProxy的动态配置(即不同的代理策略)

三、使用

  • 将希望被切入Aspect的类(即受AOP管理的类)从Nucleus.MockAOP.AspectManagedObject派生,则该类及其子类都将受AOP管理;如果某个个别子类希望脱离管理,则声明时将AspectManaged属性置为false即可

Nucleus.MockAOP.AspectManagedObject定义

namespace Nucleus.MockAOP {

[AspectManaged]

public class AspectManagedObject : ContextBoundObject {

}

}

希望受AOP管理的类定义

public class SomeBusinessClass : AspectManagedObject {

public string SomeProperty {

get{return "pone";}

}

}

父类受AOP管理,某个子类希望脱离AOP管理

[AspectManaged(false)]

public class SomeFreeClass : BusinessClass {

}

  • IAspect接口

IAspect定义

namespace Nucleus.MockAOP {

public interface IAspect {

IMethodReturnMessage SyncExecuteMethod(IMethodCallMessage msg);

IConstructionReturnMessage SyncExecuteConstructor(IConstructionCallMessage msg);

}

}

定义新的Aspect

public class TerminatorAspect : IAspect {

#region IAspect 成员

public IMethodReturnMessage SyncExecuteMethod(IMethodCallMessage msg) {

return xxx;

}

public IConstructionReturnMessage SyncExecuteConstructor(IConstructionCallMessage msg) {

return xxx;

}

#endregion

}

定义与ChainOfResponsbility模式的RealProxy实现合作的Aspect

public class ExceptionAspect : BaseChainNodeAspect {

protected override IMethodReturnMessage xxxxxx(IMethodCallMessage msg) {

return xxx;

}

}

  • 在配置文件中为类和方法指定Aspects和Aspects的相对执行顺序;使用正则表达式(type_name_regex)或者继承关系(instance_of),当在同一个type_name_pattern中同时使用时,以type_name_regex为准

<?xml version="1.0" encoding="utf-8" ?>
- <configuration>
- <configSections>
<section name="aop_setting" type="Nucleus.MockAOP.AspectConfigHandler, Nucleus.MockAOP" />
</configSections>
- <aop_setting>
- <type_name_pattern type_name_regex="Nucleus.MockAOP.Test.BusinessClass">
<aspect type="Nucleus.MockAOP.AspectsChainImpl.DurationAspect" method_name_regex="(-)*" order="10" />
<aspect type="Nucleus.MockAOP.AspectsChainImpl.MethodInfoAspect" method_name_regex="GetString" order="20" />
<aspect type="Nucleus.MockAOP.AspectsChainImpl.ExceptionAspect" order="30" />
</type_name_pattern>
- <type_name_pattern instance_of="Nucleus.MockAOP.Test.IBusiness, Nucleus.MockAOP.Test">
<aspect type="Nucleus.MockAOP.AspectsChainImpl.DurationAspect" method_name_regex="(-)*" order="10" />
<aspect type="Nucleus.MockAOP.AspectsChainImpl.MethodInfoAspect" method_name_regex="GetString" order="20" />
<aspect type="Nucleus.MockAOP.AspectsChainImpl.ExceptionAspect" order="30" />
</type_name_pattern>
- <type_name_pattern type_name_regex="(Class/*Not/*Exist){1}">
<aspect type="Nucleus.MockAOP.AspectsChainImpl.DurationAspect" order="10" />
<aspect type="Nucleus.MockAOP.AspectsChainImpl.MethodInfoAspect" order="20" />
</type_name_pattern>
</aop_setting>
</configuration>

四、下载交流

五、参考资料

分享到:
评论

相关推荐

    Nucleus文档

    《Nucleus操作系统详解》 在IT领域,嵌入式系统是不可或缺的一部分,而Nucleus操作系统正是其中的重要角色。Nucleus是一款实时操作系统(RTOS),由美国Green Hills Software公司开发,广泛应用于医疗设备、工业...

    考研英语大纲词汇5500最新(完美打印版)123_7.pdf

    4. 名词词汇: notion(概念)、novel(小说)、nucleus(原子核)、number(数字)、nutrition(营养),这些词汇可以帮助学习者描述抽象概念和具体事物。 5. 形容词汇: notorious(臭名昭著的)、numerous(众多...

    Nucleus MNT 测试版本

    标题 "Nucleus MNT 测试版本" 涉及的是一个特定的软件或系统组件的测试阶段,其中“Nucleus”很可能是指一个嵌入式操作系统,而“MNT”可能是其模块或特定功能的缩写。这个测试版本是为了在实际部署前验证和优化...

    Nucleus 模拟器

    《Nucleus模拟器:在Windows环境下体验嵌入式操作系统的魅力》 Nucleus模拟器,是一款专为Windows用户设计的工具,旨在提供一种在个人计算机上模拟Nucleus Plus多任务操作系统的可能性,无需实际的嵌入式硬件环境。...

    Python库 | nucleus-api-3.1.13.tar.gz

    《Python库nucleus-api-3.1.13详解》 在Python的世界里,库是开发者们不可或缺的工具,它们极大地丰富了Python的功能,提高了开发效率。本文将深入探讨"nucleus-api-3.1.13"这一Python库,解析其核心功能、应用场景...

    前端项目-qoopido.nucleus.zip

    《前端项目:qoopido.nucleus - 构建高效模块化应用的基石》 在当前的Web开发领域,前端框架和库的选择至关重要,它们能够极大地提升开发效率和代码质量。今天我们要关注的是一个名为“qoopido.nucleus”的前端项目...

    MTK_Nucleus.rar_MTK Nucle_mtk_mtk Nucleus _mtk 代码_nucleus

    "MTK Nucleus.rar" 是一个压缩包文件,其中包含了MTK系统内核的相关源代码,这对于想要深入理解手机底层开发的工程师来说是非常宝贵的资源。 MTK Nucleus,通常被称为Nucleus Plus,是MTK为他们的芯片平台设计的一...

    最新联发科 mtk 各类芯片介绍 大全

    MTK 芯片家族是基础 Nucleus OS 的嵌入式操作系统,同样的 MTK 平台的手机会有不同的功能、速度和软件支持,这一切都是因为芯片组的原因。可以用 WM 系统来对比,WM 相当于 MTK,经常刷 ROM 的都应该知道 WMROM 的...

    Mentor_Graphics公司软件介绍.docx

    2. Nucleus:Nucleus是一种嵌入式实时操作系统(RTOS),适用于各种微控制器和处理器,为开发多任务和时间关键型应用提供可靠的基础。 3. XRAY®:这款工具是用于芯片制造前和制造后的软件调试工具,帮助开发者在生产...

    nucleus 一个开源的操作系统

    《Nucleus:一款高效的开源嵌入式操作系统详解》 Nucleus,作为一个历史悠久且备受推崇的开源操作系统,尤其在嵌入式领域中占据着重要地位。它以其高效性、可定制性和广泛的硬件支持,成为了许多开发者的首选。本文...

    Nucleus分析报告.

    《Nucleus操作系统详解》 Nucleus是一款嵌入式实时操作系统(RTOS),因其轻量级、高效的特点,被广泛应用于各种嵌入式系统中。本文将深入剖析Nucleus的操作系统开发流程,并探讨其核心功能,如任务管理、队列、...

    nucleus移到2410平台ads源码+移植文档+中文版nucleus内部文档

    《Nucleus实时操作系统在S3C2410平台上的移植与应用》 Nucleus是一款广泛应用的嵌入式实时操作系统(RTOS),以其高效、可靠和小巧的特性深受业界欢迎。本文将深入探讨如何将Nucleus PLUS操作系统移植到S3C2410...

    Nucleus PLUS中文参考手册.pdf

    《Nucleus PLUS中文参考手册》是一份详尽的指南,专为那些希望深入了解和运用Nucleus PLUS实时操作系统(RTOS)的专业人士设计。Nucleus PLUS是一款高性能、可定制的RTOS,旨在满足嵌入式系统开发中的实时需求。这份...

    caozuoxitong.rar_nucleus_存储管理_进程 调度_进程 调度 管理_进程调度

    在这个"caozuoxitong.rar_nucleus_存储管理_进程 调度_进程 调度 管理_进程调度"项目中,我们关注的是操作系统中的两个关键概念:存储管理和进程调度。 首先,我们要理解存储管理。在计算机系统中,存储管理的主要...

    Nucleus WebBrowse.pdf

    ### Nucleus WebBrowse知识点详解 #### 一、产品概述 **Nucleus WebBrowse**是一款专门为嵌入式系统设计的浏览器应用。该浏览器利用了Nucleus PLUS、Nucleus NET以及Nucleus GRAFIX与Windowing Toolkit的组合来...

    mtk_nucleus源码和资料集合.part1

    2410_code.rar content.txt MCF5307_Code.rar mmi中文教程 MMI函数手册.pdf mtk 俄罗斯方块移植.doc mtk.doc MTK_Device Driver_Training.pdf MTK_MMI源码.rar MTK_Study ...NUCLEUS.ppt Nucleusdemo.pdf

    nucleus_1.15源代码

    在EDGE source中,我们可以找到Nucleus对文件系统的支持,例如FAT32文件系统的驱动,这在嵌入式设备需要存储和读取数据时非常有用。 7. **网络堆栈**:对于连接到网络的嵌入式设备,网络堆栈如TCP/IP是必需的。...

    matlab算法源码code-susan+image+processing滤波处理

    3. SUSAN算法:SUSAN(Smallest Univalue Segment Assimilating Nucleus)算法是一种用于图像处理的特征提取方法,尤其在边缘检测和角点检测方面具有显著的应用。SUSAN算法通过计算图像中每个像素点与邻域内的相似性...

    基于ARM微处理器的水利打夯质量监控系统.pdf

    软件部分,系统采用嵌入式操作系统Nucleus Plus作为开发平台,实现了高速的数据采集、传输、处理和控制功能。Nucleus Plus是一个实时操作系统,适合资源有限的嵌入式设备,能够提供高效的性能和稳定的服务。 在实际...

Global site tag (gtag.js) - Google Analytics