我在想我应该在ActionExecutingContext
实例的异常中包含哪些字段,我认为有一个助手会不会很好,它会产生实例数据的可读文本表示?
我知道,我不会在所有情况下都是完美的 - 我的意思是它可能太深了,它可能不会输出默认情况下需要的所有内容,但在许多情况下它会比没有任何数据的异常消息更好。
有没有人写过这样的东西,在任何开源项目中看到过?
您可以使用反射轻松获取对象的所有属性的值:
public static void LogPublicProperties(object obj)
{
foreach (var propertyInfo in d.GetType().GetProperties())
Console.WriteLine("{0} = {1}",
propertyInfo.Name,
propertyInfo.GetValue(d, null));
}
如果要记录字段,请使用Type.GetFields()
而不是GetProperties()
.