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

.Net Easy sharing of enums between different applications in different locations

好的,问题来了...

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

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

当 Bob 和 Alice 编写代码时,他们永远必须记住在开发程序时彼此共享枚举。

问题:

有什么方法可以更轻松地共享这些内容吗?由于开发人员都无法在不知道对方在做什么的情况下对自己的一方进行编码,而枚举是该过程中非常重要的部分。

构建一个同步命令,可以定期或在 command/startup 上相互请求枚举。然后,他们可以将其与本地枚举进行比较,并相应地更新它,并通过一些通知重新编译,因为枚举集已更改。

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

现在您可以轻松知道何时需要更新。

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