首页 > 解决方案 > 在项目之间共享枚举

问题描述

我正在使用 C# 和 .NET Framework 4.7 开发解决方案。

我有一个必须在许多项目之间共享的枚举。我只需要共享枚举,而不是这个项目中的其他类。

我是否需要使用枚举创建一个类库以在其他项目之间共享它?

我认为这太过分了:仅为枚举创建一个项目。

这个枚举类不经常更新。现在我在两个不同的项目中有两个这个枚举的副本。现在问题出现了,当我必须更新它时。

标签: c#.netenums

解决方案


我认为这太过分了:仅为枚举创建一个项目。

如果您已经提出答案,这不是引用中性问题。:)

其次,这种主题在https://codereview.stackexchange.com/恕我直言上会更好。

但是对于问题:如果您将其作为通常的数据合同处理,则可以避免使用单个枚举提取项目:您在两侧定义枚举,并在两者之间实现映射。

它当然有缺点:你需要复制你的枚举并做一些序列化和反序列化。执行此操作的简单方法是传输底层 int 值或枚举字段名称并将其重新映射到另一端。

您没有提供任何进一步的细节,所以我无法判断这是否真的是更好的解决方案,但通常如果没有(可能只是架构上)涉及远程组件,那么我会选择单独的项目(可能命名为 Common 或 Model) , 可供各方参考。但是,我很难想象只有一个枚举是唯一要存储的类型的数据模型。


推荐阅读