Aspect Oriented Programming in C# [closed]
Solution 1:
Just to get your head around it: It is the ability to hook events such as: creation of objects, setting of properties, etc, and attach general functions to them, that will be populated with relevant context.
Because C# doesn't have an inbuilt facility for this, you need a framework, like PostSharp, to do 'bytecode weaving' (i.e. just writing code to actually make the calls, directly to your classes) to simulate it.
Solution 2:
Aspect Oriented Programming means having a meta level where yo can define logging or security/access control features to interweave with your code instead of implementing these feature very time in your code. So instead of beeing one-dimensional, you have to program two-dimensional.
I know this may sound very esotheric but it is easy once you understood it.
AOP often works with proxy classes which intercept calls and do things in the background.
Solution 3:
A good link below, shows you how to code up an AOP framework of your own. Unfortunately, all of your consuming classes have to inherit from the MarshalByRefObject
(through ContextBoundObject
).
http://www.developerfusion.com/article/5307/aspect-oriented-programming-using-net/3/
Solution 4:
check this out, it is describing how to implement AOP ( log, timing, tracing, exception handling...) using postsharp
http://www.codeproject.com/Articles/337564/Aspect-Oriented-Programming-Using-Csharp-and-PostS