2008-08-30 69 views
6

我正在尋求推動我的域模型到一個WCF服務API,並希望得到一些關於這種安裝類型的延遲加載技術的想法。使用WCF服務域模型進行延遲加載?

採取這種方法時有什麼建議嗎?


,當我實現了這個技術,踏進我的應用程序,就在服務器返回我的名單在擊中應該是延遲加載......因此預先加載每個屬性的get。你能解釋這個問題還是提出解決方案?

編輯:appears可以使用XMLIgnore屬性,以便它不會序列化過程中看着..仍然對這個閱讀起來,雖然

回答

3

對於任何遠程化體系結構,你要避免加載以不受控制的方式「完成對象圖」(除非有少量的對象)。

Wikipedia article擁有非常多的標準技術(在C#中也是如此!)。我用過鬼和價值持有者,他們工作得很好。

要實施這種技術,請確保嚴格區分顧慮。在服務器上,您的服務契約實現類應該是使用數據契約的代碼中唯一的位。在客戶端上,服務訪問層應該是與代理一起工作的唯一代碼。

這樣的分層讓您可以調整服務相對獨立於調用服務和被調用的業務層的UI層的實現方式。它也給你半個單元測試的機會!

4

不要通過服務接口進行延遲加載。定義明確的DTO並將它們用作WCF中的數據協定。

您可以使用NHibernate(或其他ORM)正確獲取構建DTO所需的對象。

+0

我被困在ado.net的世界裏......任何你可以提供你提到的這種方法的樣本的機會? – 2008-12-05 15:01:56