Is there a way in C# or .NET in general to create an attribute on a method which triggers an event when the method is invoked? Ideally, I would be able to run custom actions
The only way I know how to do this is with PostSharp. It post-processes your IL and can do things like what you asked for.