簡體   English   中英

wcf json網絡服務

[英]wcf json web service

創建JSON Web服務的最佳方法是什么? 我們有另一個使用Java的團隊,他們堅持使用JSON完成所有通信。 我更願意使用WCF而不是任何第三方框架。

我發現這個博客: http//www.west-wind.com/weblog/posts/164419.aspx ,它表明微軟的實現存在M $特定廢話的缺陷。

如果您使用WCF和3.5 Framework,那就不容易了。 使用WebGet屬性標記OperationContracts時,只需將ResponseFormat參數設置為WebMessageFormat.Json即可。 當RESTful訪問服務時,它將使用DataContractJsonSerializer返回數據。

將您想要JSON序列化的POCO標記為[DataContract]並將每個可序列化成員標記為[DataMember]非常有用。 否則,你最終會得到時髦的JSON,正如里克在他的博客文章中指出的那樣。

我在ServiceStack中維護了一個成熟的開源替代WCF,這是一個現代的,代碼優先的,模型驅動的WCF替代Web服務框架, 鼓勵代碼和遠程最佳實踐來創建簡潔,干燥, 高性能,可擴展的REST Web服務

它包括.NET最快的JSON Serializer,並具有自動支持JSON,JSONP, CORS標頭以及form-urlencoded / multipart-formdata。 在線演示是一個很好的開始,因為它們都使用Ajax。

此外,沒有XML配置或代碼生成,您的“一次編寫”C#Web服務提供開箱即用的所有JSON,XML,SOAP,JSV,CSV,HTML端點,自動帶鈎子插件在您自己的內容類型中,如果需要。

它還包括通用同步/異步服務客戶端,提供端到端的快速,類型化的客戶端/服務器通信網關。

這是創建簡單Web服務所需的所有代碼的完整示例,該代碼在預定義和自定義REST-ful路由上的所有Web數據格式上自動無需任何配置,注冊並可用:

public class Hello {
    public string Name { get; set; }
}

public class HelloResponse {
    public string Result { get; set; }
}

public class HelloService : IService<Hello> {
    public object Execute(Hello request)
    {
        return new HelloResponse { Result = "Hello, " + request.Name };
    }
}

可以在C#中調用以上服務(沒有任何構建步驟/代碼生成),如下所示:

var client = new JsonServiceClient(baseUrl);
var response = client.Send<HelloResponse>(new Hello { Name = "World!" });
Console.WriteLine(response.Result); // => Hello, World

在jQuery中:

$.getJSON('hello/World!', function(r){ 
    alert(r.Result); 
});

創建JSON Web服務的最佳方法是什么? 我們有另一個使用Java的團隊,他們堅持使用JSON完成所有通信。 我更願意使用WCF而不是任何第三方框架。

這是一個易於理解的演練,它將指導您完成設置第一個WCF服務,然后將其鏈接到SQL Server數據庫的過程。

http://mikesknowledgebase.com/pages/Services/WebServices-Page1.htm

它使用微軟心愛的Northwind SQL Server數據庫,並展示了如何編寫一個簡單的JSON WCF Web服務來讀取和寫入它的數據。

在此輸入圖像描述

哦,然后它展示了如何使用JavaScript或iOS應用程序來使用JSON數據。

祝好運 !

我最終使用了JayRock 它非常棒的技術,只是有效。 如果沒有正確配置,你不會從這個垃圾WCF中獲得任何NullReferenceExceptions。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM