2013-02-12 59 views

回答

0

傳輸屬性定義和數據本身的一種便攜方式是使用JSON序列化程序。

可以使用JSON.Net

Deserialize json object into dynamic object using Json.net

+1

對於WCF這可能是最糟糕的想法 - >另一方面DTO合同dll很可能是最好的模式定義在中間 – user1416420 2013-02-12 07:25:33

+0

@ user1416420:當然,我會使用雙方預先理解的合同。但是,我對這個問題的解釋是如何通過線路和數據傳輸模式。 JSON做得很好。當然,Web服務也可以使用XML發佈其模式。在不知道請求背後的要求的情況下,很難確切地說出「正確」的方式。 – 2013-02-12 17:39:02

1

有道做到這將是要麼暴露,爲客戶一個schema definition for your service消耗&生成強類型從類定義反序列化到一個dynamic對象或者爲您的DTO合約定義(類/接口定義)提供一個DLL給客戶端。

如果選擇沒有這些方法(沒有架構&與接口無DLL),但仍 要生成一個類定義的,你可以在方式不當產生的.cs類定義,從的一個樣本數據服務(幾次呼叫服務並攔截響應或使用一些http client)。但是,這種方法並不能保證你會得到一個準確的或完整的一代。基本上,你可以從:

XML->XSD->C# CS類文件(甚至XML to C# cs file directly)或JSON->C# class file

和反序列化對象的動態尤其是當你沒有自己在服務器&客戶端代碼幾乎是最糟糕的事情你可以做。這種方式您沒有將您的類定義轉移到客戶端。對動態對象的反序列化實際上根本不是序列化,它給了你一個帶有語法糖的字符串字典,以便在運行時以屬性的形式訪問它們,而不需要編譯時支持,這可以等同於災難。總之不要這樣做,除非你擁有所有的代碼(不是說這是一個好主意,然後也許你可以通過某種方式獲得)