C#类向后兼容

时间:2018-10-05 15:03:08

标签: c# backwards-compatibility

我有一个NuGet包,该包在内部被某些项目使用。现在,在重构项目时,我发现了一些命名不当的类。我想知道C#中是否有任何方法可以更改类名而不破坏任何内容。

2 个答案:

答案 0 :(得分:3)

在不破坏他人代码的情况下无法重命名标识符。最好的办法是保留clAssNaME标识符,提供新的ClassName并将clAssNaME标记为已弃用。发布带有已记录并突出显示的变更日志的新版本。

当您有足够的信心使大多数人设法修复他们的代码时,请删除clAssNaME

答案 1 :(得分:1)

您所做的取决于更改的程度。如果名称更改的类型不是简单类型(即具有很多行为)或在整个包中使用,则创建该类型的副本可能非常困难,因为您还必须确保代码可以使用这两种类型(反正一段时间)。

一个更简单的解决方案是分支您的软件包,并在新分支中增加主要版本号。在“新”分支中:更新类型名称,记录重大更改,然后将发行版推送为新版本。然后,您可以维护两个分支,直到您认为适合停止“较旧”分支上的工作为止。在“较旧的”分支中,您还可以将类型标记为不赞成使用,并警告说在将来的版本中它们的名称将更改。

相关问题