3

.Net 框架和特别是 C# 语言是否支持Reflect Oriented ProgrammingAspect Oriented Programming

4

2 回答 2

2

是的,.NET 本身支持 AOP 和 Reflect Oriented Programming。

使用反射和 System.Reflection 命名空间的面向反射编程。

对于 AOP,有多种方式。.NET Framework 本身仅支持远程代理和从 ContextBoundObject 派生,但由于其性能,不建议将其用于 AOP。使用 3rd 方库的所有其他可能性。

  • 使用远程代理的方法
  • 从 ContextBoundObject 派生
  • 编译时子类化(Rhino 代理)
  • 运行时子类化(城堡动态代理)
  • 挂钩探查器 API(类型 Mock)
  • 编译时间 IL-weaving ( Post Sharp / Cecil )
  • 运行时 IL 编织(Post Sharp / Cecil)
于 2012-12-07T15:48:10.820 回答
0

反射,是的:您可以使用 System.Reflection 命名空间。

.NET/C# 并不真正支持面向方面的编程,因此您需要第三方工具。一些流行的例子是 PostSharp 和 Castle DynamicProxy。

于 2012-12-07T14:56:38.653 回答