c# - 一种在监 window 口中获取对象并将其设为 "Script"的方法

标签 c# .net visual-studio-2010 visual-studio visual-studio-addins

我有一个场景,我有一个从数据库加载的相当复杂的对象。

该对象有多个嵌套对象。在调试时,我找到了我想在单元测试中使用的该对象的一个​​实例。现在我必须手动创建这个对象。由于它相当复杂,我花了一些时间。

如果有一种方法可以告诉监 window 口将此变量输出到文本窗口(或剪贴板),我的单元测试时间会花得更好。

似乎所有需要的信息都在监 window 口中。

我不希望它创建 using 语句或任何类似的东西,只需使用它拥有的类信息并创建 new 语句(嵌套级别与我的对象一样多)。

有没有这样的工具? (如果不是,也许我只是找到了发财的方法?)

最佳答案

据我所知,没有这样的工具...这样做非常复杂,因为:

  • 对象可能有循环引用,因此你可以去的深度没有限制
  • 可以引用单例对象
  • 可能存在对构造函数带参数的对象的引用,它怎么知道如何构造对象?
  • 或对没有公共(public)构造函数的对象的引用,而是由工厂构建
  • 或对 COM 对象的引用
  • 或对仅在运行时才有意义的对象的引用:例如文件流

一个简单的解决方案:使对象可序列化(例如,到 xml 或 json),对其进行序列化,将序列化的字符串复制到单元测试中,然后在单元测试中将其反序列化。

不太简单的解决方案:使用可视化对象源实现调试器可视化: Debugger Visualizer and "Type is not marked as serializable"

这样你就可以创建一个窗口,并显示序列化的对象......你可能必须使用反射来读取所有对象属性和子对象,等等。

关于c# - 一种在监 window 口中获取对象并将其设为 "Script"的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13610807/

相关文章:

.net - 使用 WEB API OData v4 调用元数据时出现 404 错误

asp.net - 遍历结果集.Net

visual-studio - 什么是 Visual Studio 在做演示时使用的深色主题?

regex - 使用 Visual Studio 或 VS Code 删除文本中的空行

c# - DryIoC - 在解析时指定一些构造函数参数

c# - 可以从编译为 wasm 的 C# 调用 C++ 吗?

c# - 如何在带有 VB.net GUI 的 C++ OpenCV 项目中使用 C# 库?

.net - IIS7 下超出 Web 配置大小限制 0x80070032

visual-studio-2010 - VS2010 CTRL+M 键盘快捷键已停止工作

c# - 来自字符串数组的部分匹配