0

次のように、現在のメソッド呼び出し (戻り値を含む) を 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 から) のようなものですか?

4

1 に答える 1

1

デバッグに使用しているため、StackTrace と StackFrameを使用して現在のメソッド名を取得するオプションがありますが、引数を取得できず、パフォーマンスが大幅に低下します。

于 2011-03-17T04:23:23.633 に答える