C# C语言中的面向方面编程#

C# C语言中的面向方面编程#,c#,.net,aop,C#,.net,Aop,有什么好的资源可以让我集中精力进行面向方面的编程吗 PS:我需要了解AO编程,而不是.NET或C#::可用的库或框架。只是想了解一下:这是一种能够钩住事件的能力,例如:对象的创建、属性的设置等,并将通用函数附加到它们上,然后用相关上下文填充它们 因为C#没有内置的功能,所以您需要一个框架,比如PostSharp,来进行“字节码编织”(也就是说,只编写代码来直接调用您的类)面向方面的编程意味着有一个元级别,您可以在其中定义日志记录或安全/访问控制功能来与代码交织,而不是在代码中每次都实现这些功能。

有什么好的资源可以让我集中精力进行面向方面的编程吗


PS:我需要了解AO编程,而不是.NET或C#::可用的库或框架。

只是想了解一下:这是一种能够钩住事件的能力,例如:对象的创建、属性的设置等,并将通用函数附加到它们上,然后用相关上下文填充它们


因为C#没有内置的功能,所以您需要一个框架,比如PostSharp,来进行“字节码编织”(也就是说,只编写代码来直接调用您的类)面向方面的编程意味着有一个元级别,您可以在其中定义日志记录或安全/访问控制功能来与代码交织,而不是在代码中每次都实现这些功能。因此,你不必是一维的,而必须是二维的

我知道这听起来很深奥,但一旦你理解了它就很容易了


AOP通常与代理类一起工作,代理类在后台拦截调用和执行操作。

这是一个多么及时的问题啊

播客值得一听。
这将使您对什么是AOP有一个很好的概述?在哪里可以使用它


希望能有所帮助。

下面有一个很好的链接,向您展示了如何编写自己的AOP框架。不幸的是,您的所有消费类都必须从
MarshalByRefObject
(通过
ContextBoundObject
)继承


看看这个,它描述了如何使用postsharp实现AOP(日志、计时、跟踪、异常处理…)


另一方面,它对它是什么以及它的用途有很好的解释。是的,postsharp是件好事(也有很好的站点!)runtime emit也是件好事。Unity和其他人使用反射发射进行方法拦截。net也有一个钩子ContextBoundObjects,就像Jean提到的那样。不幸的是,有一个巨大的性能打击与上下文绑定的对象。似乎在我看来像一个傻瓜检查AOP在.NET-(是的,这是无耻的自我推销,但它的相关!)