iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >如何进行C#实现AOP微型框架基础的分析
  • 502
分享到

如何进行C#实现AOP微型框架基础的分析

2023-06-17 22:06:24 502人浏览 薄情痞子
摘要

如何进行C#实现aop微型框架基础的分析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。在向大家详细介绍C#实现AOP微型框架之前,首先让大家了解下微型框架的.cs文件,然后全面

如何进行C#实现aop微型框架基础的分析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

在向大家详细介绍C#实现AOP微型框架之前,首先让大家了解下微型框架的.cs文件,然后全面介绍C#实现AOP微型框架。

在前面的系列文章中,我介绍了消息、代理与AOP的关系,这次将我自己用C#实现AOP微型框架拿出来和大家交流一下。

AOP的最基本功能就是实现特定的预处理和后处理,我通过代理让C#实现AOP微型框架。先来看看构成此微型框架的.cs文件。

1. AopProxyAttribute AOP代理特性

  1. using System;  

  2. using System.Runtime.Remoting ;  

  3. using System.Runtime.Remoting.Proxies ;  

  4.  

  5.  

  6. namespace EnterpriseServerBase.Aop  

  7. {  

  8. /// <summary> 

  9. /// AopProxyAttribute  

  10. /// AOP代理特性,如果一个类想实现具体的AOP,
    只要实现AopProxyBase和IAopProxyFactory,然后加上该特性即可。  

  11. /// 2005.04.11  

  12. /// </summary> 

  13.  

  14. [AttributeUsage(AttributeTargets.Class ,AllowMultiple = false)]  

  15. public class AopProxyAttribute : ProxyAttribute  

  16. {  

  17. private IAopProxyFactory proxyFactory = null ;  

  18.  

  19. public AopProxyAttribute(Type factoryType)  

  20. {  

  21. this.proxyFactory = (IAopProxyFactory)Activator.CreateInstance(factoryType) ;  

  22. }  

  23.  

  24. #region CreateInstance  

  25. /// <summary> 

  26. /// 获得目标对象的自定义透明代理  

  27. /// </summary> 

  28. public override MarshalByRefObject CreateInstance(Type serverType)

  29. //serverType是被AopProxyAttribute修饰的类  

  30. {  

  31. //未初始化的实例的默认透明代理  

  32. MarshalByRefObject target = base.CreateInstance (serverType);

  33. //得到位初始化的实例(ctor未执行)  

  34. object[] args = {target ,serverType} ;  

  35. //AopProxyBase rp = (AopProxyBase)Activator.CreateInstance(this.realProxyType ,args) ; 

  36. //Activator.CreateInstance在调用ctor时通过了代理,所以此处将会失败  

  37.  

  38. //得到自定义的真实代理  

  39. AopProxyBase rp = this.proxyFactory.CreateAopProxyInstance(target ,serverType) ;

  40. //new AopControlProxy(target ,serverType) ;  

  41. return (MarshalByRefObject)rp.GetTransparentProxy() ;  

  42. }  

  43. #endregion  

  44. }  

2 .MethodAopSwitcherAttribute.cs

  1. using System;  

  2.  

  3. namespace EnterpriseServerBase.Aop  

  4. {  

  5. /// <summary> 

  6. /// MethodAopSwitcherAttribute 
    用于决定一个被AopProxyAttribute修饰的class的某个特定方法是否启用截获 。  

  7. /// 创建原因:绝大多数时候我们只希望对某个类的一部分Method而不是所有Method使用截获。  

  8. /// 使用方法:如果一个方法没有使用MethodAopSwitcherAttribute
    特性或使用MethodAopSwitcherAttribute(false)修饰,  

  9. ///  都不会对其进行截获。只对使用了MethodAopSwitcherAttribute(true)启用截获。  

  10. /// 2005.05.11  

  11. /// </summary> 

  12. [AttributeUsage(AttributeTargets.Method ,AllowMultiple = false )]  

  13. public class MethodAopSwitcherAttribute : Attribute  

  14. {  

  15. private bool useAspect = false ;  

  16.  

  17. public MethodAopSwitcherAttribute(bool useAop)  

  18. {  

  19. this.useAspect = useAop ;  

  20. }  

  21.  

  22. public bool UseAspect  

  23. {  

  24. get  

  25. {  

  26. return this.useAspect ;  

  27. }  

  28. }  

  29. }  

看完上述内容,你们掌握如何进行C#实现AOP微型框架基础的分析的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注编程网精选频道,感谢各位的阅读!

--结束END--

本文标题: 如何进行C#实现AOP微型框架基础的分析

本文链接: https://www.lsjlt.com/news/293890.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何进行C#实现AOP微型框架基础的分析
    如何进行C#实现AOP微型框架基础的分析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。在向大家详细介绍C#实现AOP微型框架之前,首先让大家了解下微型框架的.cs文件,然后全面...
    99+
    2023-06-17
  • 如何进行Spring AOP框架实现的结构分析
    如何进行Spring AOP框架实现的结构分析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。从实现的角度来认识SpringAOP框架。观察的角度:从外部接口,内部实现,组成部分...
    99+
    2023-06-17
  • C#怎么实现AOP微型框架
    本篇内容介绍了“C#怎么实现AOP微型框架”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在向大家详细介绍C#实现AOP微型框架之前,首先让大...
    99+
    2023-06-17
  • Caffe框架如何进行模型微调
    在Caffe框架中,模型微调通常通过在预训练模型的基础上对新数据集进行训练来实现。以下是在Caffe框架中进行模型微调的一般步骤: ...
    99+
    2024-04-02
  • 如何进行CaptureFramework框架分析
    这篇文章跟大家分析一下“如何进行CaptureFramework框架分析”。内容详细易懂,对“如何进行CaptureFramework框架分析”感兴趣的朋友可以跟着小编的思路慢慢深入来阅读一下,希望阅读后能够对大家有所帮助。下面跟着小编一起...
    99+
    2023-06-04
  • 如何进行AOP的应用分析
    这篇文章将为大家详细讲解有关如何进行AOP的应用分析,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。AOP(Aspect-Oriented Programming,面向切面的编程),它是可以通...
    99+
    2023-06-17
  • 如何进行iOS 容器化框架的基本思路分析
    这期内容当中小编将会给大家带来有关如何进行iOS 容器化框架的基本思路分析,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。前言由本章节开始,我们将从支付宝客户端的架构设计方案入手,细分拆解客户端在“容器化框...
    99+
    2023-06-05
  • 如何进行jQuery源码的整体框架分析
    这篇文章将为大家详细讲解有关如何进行jQuery源码的整体框架分析,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。先附上jQuery的代码结构。JS代码(fu...
    99+
    2024-04-02
  • 如何进行C#中Dictionary的内部实现分析
    本篇文章为大家展示了如何进行C#中Dictionary的内部实现分析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。了解Dictionary的开发人员都了解,和List相比,字典添加会慢,但是查找会比...
    99+
    2023-06-17
  • 如何进行Spring源码剖析AOP实现原理
    今天就跟大家聊聊有关如何进行Spring源码剖析AOP实现原理,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。前言前面写了六篇文章详细地分析了Spring Bean加载流程,这部分完了...
    99+
    2023-06-02
  • 如何进行分布式事务框架GTS全解析
    今天就跟大家聊聊有关如何进行分布式事务框架GTS全解析,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。全局事务服务(Global Transaction Service,简称 GTS)...
    99+
    2023-06-04
  • 如何进行C#打印设置实现源码的分析
    本篇文章为大家展示了如何进行C#打印设置实现源码的分析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。C#打印设置是如何在实际编程开发中体现的呢?C#打印设置需要注意什么呢?C#打印设置常用属性是如何...
    99+
    2023-06-17
  • 如何进行ADO.NET实体数据模型的分析
    本篇文章为大家展示了如何进行ADO.NET实体数据模型的分析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。ADO.NET经过长时间的发展,很多用户都很了解ADO.NET了,这里我发表一下个人理解,和...
    99+
    2023-06-17
  • Caffe框架如何进行目标实例分割任务
    Caffe框架通常用于图像分类和物体检测任务,而目标实例分割任务则需要更复杂的网络架构和训练技巧。以下是一种可能的方法来在Caffe...
    99+
    2024-04-02
  • 如何进行JDK7新特性中fork/join框架的原理分析
    如何进行JDK7新特性中fork/join框架的原理分析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。原理解析:fork分解,join结合。这个框架的本质是将一个任务分解成多个...
    99+
    2023-06-17
  • 如何进行void类型深层的分析
    今天就跟大家聊聊有关如何进行void类型深层的分析,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。下面将对void关键字的深刻说明,并详述void及void指针类型的使用方法与技巧,初...
    99+
    2023-06-17
  • 如何进行VB.NET实现登陆Ftp的分析
    这期内容当中小编将会给大家带来有关如何进行VB.NET实现登陆Ftp的分析,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。今天VB.NET实用教程教你对于VB.NET实现登陆Ftp的方法,快看看学习一下吧。...
    99+
    2023-06-17
  • 如何进行C++代码的性能分析?
    如何进行C++代码的性能分析在开发C++程序时,性能是一个重要的考量因素。优化代码的性能可以提高程序的运行速度和效率。然而,想要优化代码,首先需要了解它的性能瓶颈在哪里。而要找到性能瓶颈,首先需要进行代码的性能分析。本文将介绍一些常用的C+...
    99+
    2023-11-02
    代码 C++ 性能分析 C++性能分析的关键词:
  • 如何在 Go 框架中使用 NumPy 存储进行数据分析?
    在数据科学领域,NumPy 是一个重要的 Python 库,它提供了高效的多维数组操作和数学函数。而 Go 语言作为另一种常用的编程语言,也有其自己的优点。本文将介绍如何在 Go 框架中使用 NumPy 存储进行数据分析,帮助您更好地利用这...
    99+
    2023-08-14
    框架 numpy 存储
  • 如何进行ADO MD对象模型的分析
    这期内容当中小编将会给大家带来有关如何进行ADO MD对象模型的分析,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。用 Description 属性获取简短的错误描述。显示此属性向用户警告您不能或不想处理的...
    99+
    2023-06-17
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作