gpt4 book ai didi

c# - DebuggerDisplay 在运行时解析为字符串

转载 作者:可可西里 更新时间:2023-11-01 07:58:17 25 4
gpt4 key购买 nike

有没有办法在运行时访问 DebuggerDisplayAttribute 显示的字符串?

对于我们的业务对象,我尝试获取有关异常处理的自动调试器信息。捕获异常时使用的实际对象应序列化为文本以增强异常消息。由于某些属性具有其他业务对象作为类型,因此如果递归使用,这可能会变得非常长。因此我想序列化为已经在类的 DebuggerDisplay 属性中定义的信息。类的 ToString() 实现可能不同,不能用于此任务。

那么有没有可能在运行时得到调试器中显示的字符串呢?

最佳答案

我不这么认为(至少在您付出一些努力的情况下)- 我刚刚做了一些挖掘工作,发现这是一篇关于调试器显示最佳实践的文章。它没有直接关系,但它确实突出了一件事:

Each property {expression hole} must be evaluated individually and done so once for every instance of this type in every debugger display window.

我希望它在代码被中断后使用调试器进行评估(有点类似于您在断点处使用即时窗口评估语句的方式)。

总而言之,调试器生成的对象显示值在运行时对您不可用,除非您愿意解析每个表达式漏洞并使用反射自行评估它们。

文章建议提供调试器输出的最有效方法是让私有(private)方法对您要显示的所有属性执行 String.Format。您可能需要考虑将其设为公共(public)方法(可能在接口(interface)上)并使用它从中检索您的异常信息。

关于c# - DebuggerDisplay 在运行时解析为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5675359/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com