包含ENUM的DLL正在创建奇怪的行为

时间:2017-04-01 06:21:44

标签: c# dll enums

你们中的大多数人都会觉得这是一个愚蠢的问题,但在这里需要你的真正帮助。

问题: 我创建了一个单独的项目来定义常量。我正在使用该项目引用其他300个项目(基本上是DLL)。自上周以来一切正常。现在我已经改变了我的常量项目以删除一些ENUM值。

我的代码:

public enum KVP:int
[EnumMember(Value="1")]
KVP1,
[EnumMember(Value="2")]
KVP2,
[EnumMember(Value="3")]
KVP3,
//[EnumMember(Value="4")]
//KVP4,
[EnumMember(Value="5")]
KVP5

我已从项目中删除了KVP4并构建了一个新的DLL。我试图运行该应用程序,但运气不好,我得到了与KVP4相关的错误,我已经删除了。

第1点:我刚刚构建了常量DLL,我已经在其中进行了更改。

第2点:我还没有更新对剩余300个项目的持续项目参考,但这并不实际。

我在这里感到困惑,因为如果我更新DLL(常量项目)中的其他常量值,那就可以了。其他项目开始自动获取新值,这意味着所有其他项目引用新更新的DLL,但不是ENUM的情况。

任何人有任何建议或补救措施来解决问题吗?

编辑: 单词CONST和ENUM之间必须有一些区别(对于请求将其作为副本关闭的那个)。如果我必须定义常量,我应该使用什么?带有props和静态值的模型类??

1 个答案:

答案 0 :(得分:3)

你永远不应该做这些事情。你破坏了系统。

  

我还没有更新常规项目参考剩余的300个项目,这是不切实际的,但

因此,该值仍在这300个项目中使用。 您应该尝试编译它们并查看它们是否编译(它们不会)。

您可以使用Obsolete属性将其标记为[Obsolete],而不是删除该值。 并慢慢开始改变其他项目不再使用它。只有在您完全100%确定没有其他代码使用此值之后,您才能将其删除。