在.Net和C#中反思面向和面向方面

时间:2012-12-06 06:00:51

标签: c# .net reflection aspect

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

2 个答案:

答案 0 :(得分:2)

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

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

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

  • 使用远程处理代理的方法
  • 从ContextBoundObject派生
  • 编译时子类(Rhino Proxy)
  • 运行时子类化(城堡动态代理)
  • 连接到探查器API(类型模拟)
  • 编译IL编织时间(Post Sharp / Cecil)
  • 运行时IL编织(Post Sharp / Cecil)

答案 1 :(得分:0)

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

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

相关问题