<p>What are the best/most popular ways to do aspect-oriented programming (AOP) in C#/.Net?</p>

I've played around with rolling my own, for several different types of things.  I've had some luck.  In general, I make an interface, implement it with a class, and then make a proxy which implements the interface, does whatever precondition steps I want, calls the real object's method, and then does whatever postcondition steps I want.  One of the main annoyances of mine with this approach is that you can't have constructors in an interface, and you also can't have static methods in an interface, so there's no real obvious place to put that type of code.  The hard part is the code generation - because you're either going to emit IL, or you're going to emit C# that you have to compile.  But that's just been my approach.  And it forced me to think about one aspect at a time, really - I hadn't gotten to the point where I could abstract out the "Aspect" and think in those terms.  In short: roll your own or find a toolset you like, probably from
Eric Bodden's list
.