このようなクラスが必要です (疑似コード):
public MyClass
{
private bool isValid;
[CheckValid]
public int DoSomething()
{
return 1;
}
}
ここで、[CheckValid]属性でプロパティをチェックisValidし、それが true の場合はDoSomething()実行を許可するか、false の場合はDoSomething()returnにするdefault(int)(または少なくとも内部のコードにDoSomething()アクセスできないようにする)必要があります。