如何在 ServiceStack 5.0 项目中使用来自 ServiceStack 4.0 的服务模型?

Posted

技术标签:

【中文标题】如何在 ServiceStack 5.0 项目中使用来自 ServiceStack 4.0 的服务模型?【英文标题】:How can I use a Service Model from ServiceStack 4.0 in a ServiceStack 5.0 Project? 【发布时间】:2018-12-20 19:14:09 【问题描述】:

我已经开始将我们的众多 ServiceStack 服务之一从 .Net Framework 迁移到 .Net 核心。大多数迁移都比较顺利,但我遇到了服务模型的障碍。此服务依赖于使用仍在 4.0 版上的其他 ServiceStack 服务。当我尝试在新项目中使用这些服务中的服务模型时,我收到一条错误消息,指出 IReturn 接口需要专门的 4.0 版程序集,而不需要 5.0 版的 ServiceStack.Interfaces。仅降级 ServiceStack.Interfaces 会导致类似的错误,但相反,依赖于该程序集的所有其他内容都需要 5.0 版。有没有办法在不升级每个项目的情况下升级一个项目?我想我们都知道真实的系统需要一个过渡期,而且没有办法同时迁移所有服务。

【问题讨论】:

【参考方案1】:

请阅读此答案中的现有链接:

https://***.com/a/51252374/85785

TL;DR 您不能共享同一个 .dll,您需要使用 C# 添加 ServiceStack 引用来实现多目标或解耦二进制依赖项。

其他解决方案是让旧框架项目引用旧编译的 ServiceModell.dll(替代多目标)或仅复制所需 DTO 的源代码(替代 C# 添加 ServiceStack 参考)。

【讨论】:

感谢您的回复。我已经安装了 ServiceStack.Interfaces 4.5.8 和 ServiceStack.Interfaces.Core。在我尝试使用的请求模型中,它仍然给出了一个关于需要在 IReturn 上专门引用 4.0 的错误。我的意思是多目标? @Sorrien 查看链接答案的底部,其中包括指向多个目标的项目的链接***.com/a/49417944/85785

以上是关于如何在 ServiceStack 5.0 项目中使用来自 ServiceStack 4.0 的服务模型?的主要内容,如果未能解决你的问题,请参考以下文章

在 ServiceStack 中,我如何使用外部发布的 JWT

如何使用 servicestack 类型的客户端?

如何使用 gtkmm 在 TreeView 中使单个项目变为粗体?

如何使用自动布局在界面构建器中使一个项目的位置等于另一个项目的高度?

VS 2008上的ServiceStack.redis配置

如何在我的项目中使角度材料 DIALOG 可共享?