.NET 4.5にはという新しい属性があります。[CallerMemberNameAttribute]メソッドのパラメータにアタッチすると、というメソッドの文字列名が提供されます。そのメソッド(それが理にかなっている場合)。C#スタックトレースを使用しない呼び出しメソッドの取得
しかし、残念ながら(私はXNAで何かを作りたいので)私は.NET 4.0をターゲットにしています。
私のような何かを行うことができるようにしたい:
私の出力は MethodAだろうvoid MethodA() {
MethodB();
}
void MethodB() {
string callingMethodName = (...?);
Console.WriteLine(callingMethodName);
}
を。
は、私は、スタックトレースを経由してこれを行うことができます知っているが、それは)信頼できないですし、その情報を収集するために、他の方法があるかどうb)のSloooowは... は、だから私は...しかし、それはすることができ、
を思ったんだけど私は誰でも問題に抱いている可能性のあるアイデアや知識を期待していました。おかげで事前に:)
呼び出し元のメソッド名を文字列として渡しますか? – Oded
@Odedよくわかりますが、明らかに私はMethodB( "MethodA")を呼び出すことができますが、ポイントは私が動的にそれをやろうとしているので、MethodAをMethodCに変更してもその呼び出しを編集する必要はありません。 – Xenoprimate
あなたはその点を問題にしていませんでした。 – Oded