MethodImpl属性の、Synchronized等のオプションを指定するとメソッド自体が排他ロックされるわけですが、こういった属性を加える事でメソッド自体に影響を与えるカスタム属性はどのようにしたら作れますか?
それから、属性を与えることで戻り値を操作することは出来ますか?

例)

[Increment(+5)]
public void Method(int i) {
    return i;
}

public void Main() {
    int j = Method(3);
    // j == 8 :: true
}