シルバーライトリフレクション|渡されたパラメーターを使用したGetCurrentMethod
-
14-10-2019 - |
質問
このようなVisual Studio出力に現在のメソッド呼び出し(戻り値を含む)を印刷したい:
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
{
Func<object, object> ret = (value) =>
{
#if DEBUG
var debug = new StringBuilder();
debug.Append("MyConverter.Convert([");
debug.Append(values.Sum(v => (v != null ? v.ToString() : "null") + ',', null, v => v != null ? v.ToString() : "null"));
debug.Append("], " + targetType.ToString() + ", " + parameter.ToString() + ", " + culture.DisplayName + ") =" + value.ToString() + ";");
Debug.WriteLine(debug.ToString());
#endif
return value;
};
// [..]
}
私はこれを使用して、デバッグ中により多くの情報(ここに示すようにコンバーターから)をより多くの情報を実現しています。しかし、それは単なるラウンドアバウトの方法です。
もっと柔軟に行う方法はありますか? GetCurrentArgumentsのようなもの(MethodInfoから)?
解決
デバッグに使用しているため、 StacktraceとStackframe 現在のメソッド名を取得するには、議論が得られず、激しいパフォーマンスのペナルティがあります。
所属していません StackOverflow