[英]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.