Я хочу напечатать текущий вызов метода (включая возвращаемое значение) в вывод 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)?