シルバーライトリフレクション|渡されたパラメーターを使用したGetCurrentMethod

StackOverflow https://stackoverflow.com/questions/4563948

質問

このような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 現在のメソッド名を取得するには、議論が得られず、激しいパフォーマンスのペナルティがあります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top