.Net在不同位置的不同应用程序之间轻松共享枚举

时间:2015-03-04 10:14:07

标签: c# enums

好的,这是问题......

鲍勃在英国写一个TCP客户端。 Alice在美国写TCP服务器。

Bob拥有与客户端可以发送的命令和回复相关的枚举。 Alice有与服务器可以发送的命令和回复相关的枚举。

虽然鲍勃和爱丽丝正在编码,但他们永远不得不记得在开发程序时彼此分享枚举。

问题:

有没有办法可以更容易地分享这些?因为没有开发人员可以在不知道对方正在做什么的情况下编写自己的代码,而且枚举是这个过程中非常重要的一部分。

2 个答案:

答案 0 :(得分:1)

构建一个sync命令,可以定期或在命令/启动时相互请求枚举。然后,他们可以将其与本地枚举进行比较,并相应地更新它,并通知重新编译枚举集已更改。

答案 1 :(得分:1)

您可以添加协议版本以检查兼容性。当客户端连接时,它将其版本发送到服务器,如果客户端不兼容,服务器可以回复错误。您可以在添加客户端必须知道的新枚举值时增加版本,并决定服务器是否应拒绝或与旧客户端在兼容模式下工作。

现在您很容易知道何时需要更新。

要使更新更容易,请创建一个单独的项目,其中包含对您的协议有用的所有consts和方法。创建一个nuget包并在客户端和服务器中使用它。使用适当的nuget存储库,您可以发布更新,并从英国或美国一键获取。