2014-06-18 29 views
0

我已經設置了一個基本的ServiceStack服務,爲一些複雜的報告提供了一個集中的數據中心。在MVC應用程序中使用ServiceStack外部服務

我們有幾個不同的網絡應用程序,我想(以某種方式)調用這個服務來獲取所需的數據,然後根據這些信息顯示報告/圖表等。

我不清楚的是我如何在C#中獲取ServiceStack數據,因爲它是作爲一個完全獨立的網站運行的。 (即:我們的MVC應用程序,它是在2年前創建的,現在根本就沒有與ServiceStack的鏈接)。

我可以看到我可以通過AJAX調用;但我有一個要求,在某些情況下,可以直接在C#中操作這些數據。

是否需要像常規SOAP服務那樣添加服務引用?還是有更好的方法來做到這一點?

+0

您是否嘗試過使用隨ServiceStack提供的C#JsonServiceClient? – SteveChapman

+0

你是說這是我應該用來與服務交互的方法嗎?我知道它的存在,但不清楚它是否是這樣做的首選方法。這意味着將ServiceStack添加到每個打算利用數據服務的項目中,是不是? – pierre

+0

接受的答案几乎就是我所在的位置。如果您想從.NET客戶端輕鬆訪問SS服務,您基本上必須在您的客戶端應用程序中使用依賴項。 FWIW - 我也成功使用過RestSharp;但SS服務客戶更可取。 – SteveChapman

回答

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的一部分。文本,並沒有依賴關係,即:

Install-Package ServiceStack.Text 

另外值得注意的是ServiceStack只是將通過HTTP你可以使用任何.NET HTTP客戶端純JSON/XML響應。

+0

謝謝,我會研究這個。通過使用客戶端,我是否不需要在我的消費應用中使用DTO類?我想知道如果我的項目中沒有對象結構(它們在服務端),我將如何反序列化。 – pierre

+1

[建議您的DTO在它自己的單獨項目中](https://github.com/ServiceStack/ServiceStack/wiki/Physical-project-structure),以便它可以與客戶端共享而不強制其他依賴關係,並且您獲得沒有代碼的端到端類型化API。你的DTO應該只需要引用'ServiceStack.Interfaces'即ServiceStack的impl和dep-free接口的dll。注意:如果您希望避免依賴關係,可以將源文件複製到客戶端項目中。 – mythz

+0

非常感謝你:)我會閱讀並深入研究這一點。 – pierre

相關問題