gpt4 book ai didi

c# - 有没有办法以编程方式将类从一个 namespace 移动到另一个 namespace ?

转载 作者:太空狗 更新时间:2023-10-29 18:28:43 26 4
gpt4 key购买 nike

我想以编程方式将一个类从一个命名空间移动到另一个命名空间。这包括调整移动类在其先前命名空间中的任何依赖项。

我猜我可以以某种方式利用 Roslyn 项目,但我找不到起点。

编辑:

我正在尝试在 C# 代码上实现自动移动类重构。出于研究目的而这样做——收集代码指标并研究重构过程前后的变化。

我可以手动进行重构,但想知道我是否可以自动进行。这意味着我已经有了重构候选人和他们建议的搬迁地点。

最佳答案

没有对此的内置支持,所以是的,您必须自己实现。

如果您确实想尝试这个,您可能会执行一些高级步骤:

  1. 您首先调用 SymbolFinder.FindReferences 来确定在何处提及了您的类型名称。
  2. 对于您找到引用的每个文档,使用 SyntaxRewriter 重写语法。
  3. 将新语法放在那里。
  4. 运行我们的简化程序以恢复所有清理工作。

您可以深入研究我们的重命名代码以了解我们是如何做到这一点的,但我会警告您它相当复杂。就难度而言,这种重构可能是“中等”的,所以并不是要劝阻您,但如果您尝试将其作为第一次介绍 Roslyn,那么您将面临一场艰苦的战斗。

(座右铭:重构总是比你想象的要难。)

关于c# - 有没有办法以编程方式将类从一个 namespace 移动到另一个 namespace ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41954151/

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