在C#、VB.net中有大量的AOP实现.以下是一些AOP实现:

AOP的最佳实现是什么.网我应该用什么?

推荐答案

如果动态拦截能够满足您的需求,我认为Castle Dynamic Proxy是首选的解决方案.许多其他希望提供AOP功能的框架都在内部使用这个框架.通常,大多数现有的IoC容器现在都提供了一些动态拦截机制(Spring.NET、Castle Windsor、StructureMap等).如果您已经使用了IoC容器,那么查看它的建议可能会更容易.

如果动态侦听不能满足您的需求(编织密封类、拦截非虚拟调用等),那么您当然需要静态编织.PostSharp是这个领域的参考.

请注意,它还存在Linfu,可用于利用这两种AOP方式.

.net相关问答推荐

条带连接支付—引发异常

为什么$NULL在ForEach-Object{}和Foreach()中的行为不同?

在 F# 中处理 Option - Some(null) 的好策略是什么

Azure SignalR 和微服务

如何在选项卡中 Select Winforms NumericUpDown 中的所有文本?

在 WebApi 中需要 SSL?

在 C# 中生成随机小数

value 的默认参数必须是编译时间常数?

Style 和 ControlTemplate 的区别

mstest.exe 在哪里?

我什么时候应该在 C# 中使用使用块?

为什么递归调用会导致不同堆栈深度的 StackOverflow?

struct 中需要覆盖什么以确保平等正常运行?

Dapper 是否支持 SQL 2008 表值参数?

如何异步 Files.ReadAllLines 并等待结果?

DataGridView 在我的两个屏幕之一上的可怕重绘性能

如何从 .NET 读取 PEM RSA 私钥

.NET 高级别的 .NET 4.0 和 .NET 4.5 的区别

如何隐藏 WPF ListView 的标题?

检测到包降级警告(dotnet core,vs 2017)