我有一个场景,我有一个从数据库加载的相当复杂的对象。
该对象有多个嵌套对象。在调试时,我找到了我想在单元测试中使用的该对象的一个实例。现在我必须手动创建这个对象。由于它相当复杂,我花了一些时间。
如果有一种方法可以告诉监 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/