面向方面编程(AOP)让开发人员可以对多个类运用一些函数,但无须实际修改它们的代码。方面或相关的功能可通过特性或配置文件应用到不同的类。AOP 最早受到 AspectJ 与 Java 编程语言的青睐。从此以后,它为大多数编程语言所应用。
在.NET 方面,如 PostSharp 等 AOP 框架,使用后期生成(post-build)的方式来实现这个功能。这个过程反编译 IL 汇编语言,添加额外的功能,然后再重新编译。此时,我们不得不使用类似 Reflector 这样的工具来查看结果。
PostSharp 2.0 新增了两项重要功能,使得它让 AOP 开发人员更易于理解代码。第一个就是方面浏览器,它可让开发人员选择一个方面并查看所有它所应用到的类。这是通过两个像 Visual Studio 类型查看器一样的树状视图来完成的。
第二项功能则影响了 Visual Studio 代码编辑器。通过把鼠标悬停在类名之上,我们可以看到应用到该类的所有方面,包括基类中的定义。此外,tooltip 信息也可以显示方面的相关定义。
查看英文原文: PostSharp 2.0 Makes Aspect-Oriented Programming Easier with IDE Support
更多内容推荐
Rust 异步编程之 tokio 运行时(八)
2021-08-26
.NET 多线程 (Thread,ThreadPool,Task,Async 与 Await)
进程是一种正在执行的程序。 线程是程序中的一个执行流。 多线程是指一个程序中可以同时运行多个不同的线程来执行不同的任务。
2020-09-10
Visual Studio 2017 15.9 预览版 3 支持 ARM64 for UWP
微软针对Visual Studio 2017 15.9的更新工作还在继续。在15.9的第三个预览版中,微软宣布支持ARM64平台上的UWP应用程序,并扩展了TypeScript开发人员可以使用的功能。和通常的情况一样,该版本还包含了大量的修复程序。
.NET 4.6 的 RyuJIT 编译器中发现严重的 Bug
来自Stack Exchange的开发者Nick Craver与Marc Gravell提交了一个严重的bug的相关报告,它可能会影响到安装了.NET 4.6的用户与开发者。一旦安装了.NET 4.6之后,新的RyuJIT编译器将默认设置为启动状态,它在用户的程序执行时可能会产生一个严重的问题。
07|项目代码规范:如何成为一名合格的团队协作工程师?
做项目代码规范,不是为了规范而规范,核心是要提升代码质量,开发项目时,让团队合作更加顺利,让代码可读性更强,让项目维护成本更低,让项目的潜在代码问题变得更少。
2022-12-05
.NET6 新东西 --CallerArgumentExpression
在.NET6中我们可以使用CallerArgumentExpression很方便的获取调用方的信息,它可以帮助开发人员简化很多代码,让代码更加简洁。下面我们就来讲解一下吧。其实在很早.NET就支持自动获取调用方的信息了,在.NET6以前我们如果要获取调用方的信息可以使用这三个C
2021-11-14
ELK 太重?试试 KFC 日志采集
堆栈跟踪: at System.Web.Mvc.DefaultControllerFactory.GetControllerInstance(RequestContext requestContext, Type controllerType)
2021-11-11
.NET Core 3.0 特性初探:C# 8、WPF、Windows Forms、EF Core
.NET Core的下一个主要版本最近进入了预览阶段,.NET Core 3.0将支持使用Windows Presentation Foundation (WPF)、Windows Forms(WinForms)、Entity Framework (EF)、Blazor、 C# 8和.NET Standard 2.1构建桌面应用程序。
课前热身|开始学习之前我们要准备什么?
开始学习之前,我们要准备哪些基础配置和前导知识?
2021-08-09
C#/VB.NET:从 PDF 文档中提取所有表格
有时,我们可能需要从 PDF 文档中提取表格数据,例如,当PDF发票的表格中存储了一些有用的信息,需要提取数据以进行进一步分析时。在这篇文章中,我将介绍如何使用Spire.PDF for .NET 从 PDF 文档中提取所有表格数据。
2022-08-01
Ooui:在浏览器中运行.NET 应用
归功于Ooui软件库的推出,.NET开发人员现在新添了一种运用他们开发技能的方法,使.NET应用直接以WebAssembly方式在浏览器中执行。Ooui为C#和F#开发人员提供了一种交付工作的新方式。
微软发布.NET 5.0 RC1,未来将只有一个.NET
微软发布了.NET 5.0 RC1,这是.NET 5在11月正式发布之前的第一个“go-live”版本。
鸿蒙开发初体验【鸿蒙 01】
鸿蒙开发初体验
2022-01-18
总结与答疑
在这节课里,我将和你总结一下自开课这段时间以来,各位同学在各个渠道提出的有关 Wasm 的一些问题。
2020-10-19
Wasmtime:终于可以在.NET 应用中运行 WebAssembly 了
WebAssembly运行时Wasmtime增加对.NET Core的支持,基于.NET Core的应用程序现在可以运行WebAssembly代码了。
Rust 异步编程之 tokio 运行时(十)
2021-09-02
10 分钟带你彻底搞懂 Spring Cloud Config 配置信息自动更新原理
2022-03-29
Win2D:面向 C#的 2D 图形加速 API,不适用于 WPF
Windows应用开发人员有了一种利用GPU加速2D图形代码的新方法。Win2D是一种新的Windows Runtime API,为Windows Phone和Windows Store上的Universal App提供了一种访问DirectX的新方法,而不必借助C++。
开源项目丨 Taier 1.1 版本正式发布,新增功能一览为快
2022 年 5 月 8 日,Taier 1.1 版本正式发布!
2022-05-10
Visual Studio 2015 与.NET 4.6 RTM 正式发布
期待已久的.NET 4.6与Visual Studio 2015终于正式发布了,此次发布体现了微软在开发工具发展方向上的转变,他们致力于提供一个富有竞争力的开发者工具,并且支持多种应用程序目标平台。VS2015不仅支持Windows家族产品,同时也支持iOS与Android的开发。
暂无签名
推荐阅读
09. 懂战略——如何拆解战略 1
2023-10-17
AWS 亚马逊云科技 1 亿美金入局 AIGC,哪些 AI 云服务已经可以对标微软、谷歌?
2023-06-25
2022-10-29:go 语言中的 defer 能非常方便地处理资源释放问题,rust 语言里如何实现 defer 功能呢?
2022-10-29
35|静态类型检查:ESLint 语法规则和代码风格的检查
2022-12-08
38|编译和打包:通过 Webpack、Babel 做编译和打包
2022-12-15
.NET 常见的 4 种加密算法
2023-09-18
2023 年北京.NET 线下技术沙龙圆满落幕!
2023-05-23
电子书

大厂实战PPT下载
换一换 
张彧杰 | Cloudflare 解决方案工程师
高琳 | Red Hat 高级软件工程师
庄表伟 | 华为 开源解决方案与架构专家
评论