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 回答