在.Net框架Web项目中使用DotNetStandard服务模型的ServiceStack

2023-12-11

我们最近使用 ServiceStack 创建了一个新的 DotNetCore Web 服务。 ServiceModel 项目是 DotNet Standard 类库 v2.0。

我在从用 DotNet Framework 4.6.1 编写的现有 Web 服务引用新的 ServiceModel 时遇到编译错误。看起来通过引用新的 ServiceModel,它正在引入 ServiceStack.Interfaces.Core,这与 DotNet Framework 项目中已经引用的 ServiceStack.Interfaces 发生冲突。

我们还不打算将这些现有服务升级到 DotNetCore。有没有办法在 DotNet Framework Web 服务中使用 DotNet Standard ServiceModel?

[Edit 1]

发现类似问题here。我的ServiceModel仅引用ServiceStack.Interfaces.Core(5.1.0)。 .net Framework 项目面向 v4.6.1 并使用 ServiceStack v4.5.8。我是否需要升级到最新的服务堆栈才能使其正常工作?

[Edit 2]

将.net Framework项目中的ServiceStack版本升级到5.1.0。这修复了那些服务未实现 IServiceClient 的错误。然而,现在我得到了

  • 类型“IReturn”是在一个程序集中定义的,该程序集不是 参考。您必须添加对程序集的引用 'ServiceStack.Interfaces,版本=5.0.0.0,文化=中性, PublicKeyToken=null'。

  • 方法的类型参数 无法从以下内容推断出“IServiceGateway.Send(object)” 用法。尝试显式指定类型参数。


如果您想同时支持经典 ASP.NET Framework 项目和 .NET Core 项目,则需要多目标。详情请参阅之前的回答:

https://stackoverflow.com/a/49417944/85785

如果您只想支持 ASP.NET Core .NET Framework 项目和 .NET Core 项目(即两个 ASP.NET Core 项目),您可以参考ServiceStack的*.Core项目其中仅包含 .NET Standard 版本。

或者,您可以避免共享 ServiceModel.dll 项目的二进制耦合,并让经典的 ASP.NET 项目通过以下方式引用您的 DTO:C# 添加 ServiceStack 参考.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在.Net框架Web项目中使用DotNetStandard服务模型的ServiceStack 的相关文章

随机推荐