2012-01-17 26 views
1

我有一個有關在服務器/客戶端應用程序之間使用WCF KnownType屬性的問題,
如您所知,使用wcf在服務器和客戶端之間傳輸對象的方式有所不同。使用或不使用服務器之間的KnownType屬性?

  1. using knowntype。
  2. 使用DataContractResolver。
  3. 使用POCO傳輸已知類型對象的數據(最佳實踐)。

(3)傳遞數據的最佳方式是什麼?它是一個序列化(XML/JSON/bufferProtocol)字符串?作爲它自己的類(然後我們再次獲得知識類型)?

+0

我認爲所有三個選項仍然涉及序列化到某種XML – 2012-01-17 13:44:26

+0

通過使用wcf(SOAP)消息是一個XML。但仍然可以將數據(POCO)轉換爲JSON或緩衝區協議中的字符串。我只想知道它是否好? (我不問REST) – guyl 2012-01-17 13:47:41

回答

0

我通常使用使用DataContractSerializer的POCO對象。在這種方法下,DTO被存儲在一個單獨的程序集中,WCF對話的兩端都可以訪問。

我只有在DTO涉及繼承時才需要顯式使用KnownTypes。例如,如果服務契約指定了一個基類,但我實際上正在返回一個派生類,那麼我需要使用KnownType配置明確聲明繼承。

這在我的使用中很少見,一般不需要。

使用DataContract屬性裝飾您的POCO對象。使用DataMember屬性裝飾屬性,框架將負責其餘部分。

相關問題