c# - 如何使用枚举进行版本控制

标签 c# .net enums

我正在开发一个 Revit 附加组件,我需要在其中分配数据字段(使用外部存储)。我无法预见将来需要多少数据字段,因此我需要计划一些版本控制。我需要拥有完整的版本历史记录,以便以后可以对版本处理器进行编程,以将旧版本创建的实体升级到最新版本。

我需要按名称(字符串)引用这些字段,但我认为使用枚举,因为在键入时很容易从列表中选择所需的值。

示例:

现在:

enum BoolFields_v1 { IsPipe, IsSomething }

future :

enum BoolFields_v2 { IsPipe, IsSomething, IsSomethingElse }

但是,在我的代码中,我想全局引用一个枚举:BoolFields。我希望我能做这样的事情:

public enum BoolFields { get {return BoolFields_v2} }

private enum BoolFields_v1 { IsPipe, IsSomething }
private enum BoolFields_v2 { IsPipe, IsSomething, IsSomethingElse }

好吧,我知道这是不可能的。有什么想法可以实现这一点吗?

最佳答案

我也遇到过类似的问题,所以我选择了命名空间。最新版本始终位于非版本化命名空间中,旧版本是:

namespace My.Product
{
    private enum BoolFields { IsPipe, IsSomething, IsSomethingElse }
}

namespace My.Product.V1
{
    private enum BoolFields { IsPipe, IsSomething }
}

当您转移到新版本时,您可以从当前版本复制相关模型并将其移至V2。然后您就可以毫无问题地编辑当前版本。

在这种情况下,向枚举添加数字将简化旧版本到新版本的转换。

关于c# - 如何使用枚举进行版本控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50760778/

相关文章:

java - Java 枚举定义有什么问题

c# - XDocument.Root : Possible System. NullReferenceException

c# - 向 XML 节点添加属性

c# - 动态添加字典中的键

具有泛型的 C# 语法

c# - LINQ 使所有方法异步

java - 何时以及为何使用 JumboEnumSet

c# - 有没有办法根据初始枚举值使用不同的构造函数?

c# - 如何在asp.net fileupload中上传后显示图片

c# - 在 C# 中裁剪图像空白