重构C#应用程序工具

本文关键字:工具 应用程序 重构 | 更新日期: 2023-09-27 18:19:56

我有一个关于重构的问题。我想检查更改后系统和对象的状态是否相同。由于系统类型的原因,我不能同时创建同样的两个对象,而是一个接一个地创建。这些物体很大。

我考虑将它们序列化到一个文件中并进行比较。

  1. 有其他方法可以进行比较吗
  2. 是否不需要遍历所有对象并添加属性[Serializable]
  3. 属于COM但没有该属性的对象会发生什么情况
  4. 如果一个对象由另一个对象组成,它会将其序列化为吗

重构C#应用程序工具

我的第一个想法是回到重构规则。

  1. 在重构之前,在单元测试中包装要重构的代码
  2. 逐步重构
  3. 每次小变动后进行测试

虽然我没有使用过它,但Orsol的答案(对象比较API)听起来很有希望(问题1)。至于序列化路径,.NET包装器应该有助于序列化对象,但最终可能会破坏自动生成的代码,因此这是一个短期解决方案。序列化到文件并进行比较是一个短路径选项。

我仍然认为花时间设置单元测试是一项值得的练习,即使你不打算在未来再次重构(或扩展、更改等)代码。

您可以从对象比较API 开始

是的,如果你想重构你的代码,首先要有一个测试的安全网。然后,尝试逐步进行重构。

有时,你知道你想要重构什么;然而,很多时候你不知道该重构什么(尽管,你可能会猜测出了问题)。在这种情况下,可以使用Designite等设计气味检测工具。