首页 / 知识
关于c#:应用面向方面的编程
2023-04-15 08:32:00

Applying Aspect Oriented Programming我一直在使用一些基本的AOP样式解决方案来解决诸如安全性,日志记录,验证等跨领域问题。我的解决方案围绕Castle Windsor和DynamicProxy,因为我可以使用基于Boo的DSL来应用所有内容,并使代码保持属性清洁 。 周末我被告知要看一下PostSharp,因为它应该是一个"更好"的解决方案。 我快速浏览了PostSharp,但是由于Attribute的使用而感到不满意。 是否有人尝试过两种解决方案,并愿意分享他们的经验? PostSharp的几个小问题... 我对PostSharp的一个问题是,在使用asp.net时,由于PostSharp注入了程序集中的IL指令的数量也未插入PDB,因此异常消息的行号被"淘汰"了。 另外,如果在运行时没有可用的PostSharp程序集,则会发生运行时错误。使用Windsor,可以在以后关闭横切面而无需重新编译代码。 (希望这很有意义) 我只看了一下城堡温莎(至今),所以我无法对此发表评论,但我确实使用了postharp。 后锐通过在编译时进行编织来工作。它会在您的构建中添加一个后编译步骤,以在其中修改您的代码。就像您刚刚将横切关注点编程到代码中一样,代码被编译。这比运行时编织更有性能,并且由于使用了属性Postsharp非常易于使用。我认为将属性用于AOP并不像将属性用于DI那样麻烦。但这只是我的个人品味。 但... 如果您已经使用Castle进行依赖项注入,那么我不认为您不应该将Castle也用于AOP的充分理由。我认为,尽管运行时的AOP比编译时要慢一些,但它的功能也更强大。在我看来,AOP和DI是相关的概念,因此我认为对两者使用一个框架是一个好主意。因此,在下一个我需要AOP的项目中,我可能会再次看看城堡的东西。 |
最新内容
相关内容
编程解析linux命令?
编程解析linux命令?,系统,标准,基础,设备,发行,电脑,工具,密码,名字,适当,如何学习linux命令之ls的使用ls Linux常用命令中,ls用于列出当前路径linux命令行图形编程?
linux命令行图形编程?,系统,不了,情况,密码,工具,地方,百度,管理,图形界面,命令,linux下启动图形化界面的命令是不是startx?当启动文件找不到linux编程执行命令?
linux编程执行命令?,电脑,系统,环境,命令,基础,发行,工具,代码,地址,名称,linux为脚本程序指定执行权的命令及参数是1、chmod u+x file,如果只linux终端命令行编程?
linux终端命令行编程?,系统,工作,命令,终端,概念,时间,第一,代码,发行,地方,Linux下5个有趣的命令行技巧介绍我们可以使用history命令来查看曾linux编程调用命令?
linux编程调用命令?,系统,标准,管理,工作,基础知识,情况,环境,设备,基础,首页,linux下怎样用c语言调用shell命令可以通过system函数,调用shelllinux编程所需的命令?
linux编程所需的命令?,工作,地址,档案,系统,命令,管理,标准,信息,目录,文件,Linux必须学会的60个命令:文件处理1应用实例如果我们看到一个没有linux命令行编程乱码?
linux命令行编程乱码?,环境,统一,乱码,中文,状态,软件,数据,系统,字符集,文件,为什么我进入Linux的终端窗口时,man一条命令出来的都是乱码呢?linux验证分区命令?
linux验证分区命令?,系统,工具,情况,分区,命令,状态,网络,密码,检测,首次,在LINUX系统中,分区与格式化硬盘的命令是什么?1、fdisk/sfdisk:命令linux编程c命令符?
linux编程c命令符?,工具,代码,系统,保险,环境,文件,程序,命令,终端,编辑,到底怎么在Linux里编写c程序啊?1、学会使用vim/emacs,vim/emacs是linulinux常用编程命令?
linux常用编程命令?,基础,基础知识,系统,管理,概念,在线,发展,设备,设计,名字,Linux学习?1、linux怎么学习首先初学者要先学好Linux相关的基础linux命令行界面编程?
linux命令行界面编程?,系统,环境,代码,密码,命令,终端,首页,软件,工作,电脑,linux命令行linux常用命令有pwd命令、cd命令、ls命令、cat命令、glinux命令行编程参数?
linux命令行编程参数?,网络,信息,系统,实时,状态,情况,工具,服务,环境,分析,Linux系统下top命令的每个参数代表什么意思1、COMMAND 该进程的命