【问题标题】:Using ServiceStack external service within MVC app在 MVC 应用程序中使用 ServiceStack 外部服务
【发布时间】:2014-06-18 22:22:15
【问题描述】:

我已经设置了一个基本的 ServiceStack 服务,它为一些复杂的报告提供了一个集中的数据中心。

我们有几个不同的网络应用程序,我想(以某种方式)调用此服务以获取所需的数据并根据该信息继续显示报告/图表等。

我不清楚的是,当它作为一个完全独立的网站运行时,我实际上是如何“获取”C# 中的 ServiceStack 数据的。 (即;我们的 MVC 应用程序是 2 年前创建的,现在根本没有链接到 ServiceStack)。

我可以看到如何通过 AJAX 进行调用;但我的要求是,在某些情况下,能够直接在 C# 中操作这些数据。

我是否像常规 SOAP 服务一样添加服务引用?或者有更好的方法吗?

【问题讨论】:

  • 您是否尝试过使用 ServiceStack 附带的 C# JsonServiceClient?
  • 你是说这是我应该用来与服务交互的方法吗?我知道它的存在,但不清楚它是否是执行此操作的首选方法。这意味着将 ServiceStack 添加到每个打算使用数据服务的项目中,不是吗?
  • 接受的答案几乎就是我的目标。如果您想从 .NET 客户端轻松访问 SS 服务,则基本上必须在客户端应用程序中建立依赖关系。 FWIW - 我之前也成功使用过 RestSharp;但 SS 服务客户端更可取。
  • 另外可能值得注意的是,SS v3 在不同的包中提供服务客户端 - 我认为是 ServiceStack.Common。

标签: c# servicestack


【解决方案1】:

从 .NET 客户端使用 ServiceStack 服务的最佳(也是推荐)方法是使用ServiceStack's .NET Service Clients

NuGet package that contains the Service Clients 是:

Install-Package ServiceStack.Client

它的唯一依赖是:

  • ServiceStack.Interfaces
  • ServiceStack.Text

为了最小的依赖性,您可以使用 ServiceStack's Http Utils 使用服务,它是 ServiceStack.Text 的一部分并且没有依赖性,即:

Install-Package ServiceStack.Text

另外值得注意的是,ServiceStack 只是通过 HTTP 发送纯 JSON/XML 响应,您可以使用任何 .NET HTTP 客户端。

【讨论】:

  • 谢谢,我会调查的。通过使用客户端,我是否不再需要在我的消费应用程序中使用 DTO 类?我想知道如果我的项目中没有对象结构(它们在服务端),我将如何反序列化。
  • 它是recommended that your DTO's be in it's own separate project,因此它可以与客户端共享而无需强制附加依赖项,并且您可以获得无需代码生成的端到端类型化 API。您的 DTO 应该只需要引用 ServiceStack.Interfaces 即 ServiceStack 的 impl 和 dep-free 接口 dll。注意:如果你想避免依赖,你可以将源文件复制到你的客户端项目中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-26
相关资源
最近更新 更多