I'll take TransactionScope as my example for now. Imagine every method in your WCF carries out database activity, and you want every call to be in a transaction. You could include a using block in every one of your methods, and that would work fine.

I'm wondering if there is an easier way to do this at a service, rather than method-level? For example Before/After method invocation events, or something in ServiceBehavior.

Now I know specifically for TransactionScope you can use the TransactionScopeRequired attribute, but if it didn't exist, what would you do?