Это, вероятно, не то, что вы ищете, но с помощью PostSharp можно создать такой атрибут, у вас, вероятно, будет что-то вроде этого:
[Serializable]
public sealed class StaticAttribute : OnMethodBoundaryAspect
{
public override bool CompileTimeValidate(System.Reflection.MethodBase method)
{
return method.IsStatic;
}
OnMethodBoundaryAspect в основном оборачивает ваш метод внутри блока try / catch, а метод CompileTimeValidate определяет, будет ли атрибут вызываться во время выполнения.