2012-12-06 1 views
3

Le framework .Net et spécialement le langage C# prend en charge Reflect Oriented Programming et Aspect Oriented Programming?Reflect Orienté et Orienté Aspect .Net et C#

+2

Oui pour les deux, voir l'espace de noms System.Reflection et http://www.sharpcrafters.com/aop.net – jbl

+0

@jbl Je dirais que C# ne supporte pas AOP. Vous avez besoin de PostSharp ou d'extensions similaires, le simple C# ne fonctionne pas bien. – CodesInChaos

+0

Il semble aussi que Anders Hejlsberg est contre AOP. http://www.sharpcrafters.com/blog/post/Anders-Hejlsberg-Dead-Body.aspx –

Répondre

0

Réflexion, oui: vous pouvez utiliser l'espace de noms System.Reflection.

La programmation orientée aspect n'est pas vraiment supportée par .NET/C# tel quel, vous aurez besoin d'un outil tiers pour cela. Certains exemples populaires sont PostSharp et Castle DynamicProxy.

2

Oui, .NET prend en charge AOP et Reflect Oriented Programming.

Programmation orientée Reflect utilisant la réflexion et l'espace de noms System.Reflection.

Pour AOP, il existe plusieurs ways. Et seuls les proxies distants et dérivant de ContextBoundObject sont supportés par .NET Framework lui-même, mais ne sont pas recommandés pour utiliser AOP en raison de leurs performances. Toutes les autres possibilités utilisant des bibliothèques tierces.

  • approche à l'aide Remoting proxies
  • Dérivant de ContextBoundObject
  • subclassing Compile temps (Rhino Proxy)
  • Runtime subclassing (Castle Dynamic Proxy)
  • Accrochage dans l'API profileur (type Mock)
  • Temps de compilation IL-tissage (Post Sharp/Cecil)
  • Runtime IL-tissage (Post Sharp/Cecil)