我的項目解決方案如下:哪些應該保留這個設計方法
- MVC項目(包含如下兩個項目的參考)
- WCF服務包含業務方法(方含下列項目的參考)
- 通用項目DTO或BusinessObject的
MVC中 - 調用WCF服務方法如下 - IList<Employee> RetriveData()
它從MVC - ServiceClient.RetrieveData()調用,現在問題是返回對象Employee
指向ServiceHost.Employee
對象而不是 - Common.DTO.Employee
對象(庫項目)所以,它給出了類型轉換錯誤。
任何人都可以告訴我什麼是解決方案在這裏,或者我應該從MVC中刪除「Common.DTO」項目引用,並只使用Servicehost.Employee
對象。
請指導我這個設計,應該用什麼。
注意:所有對象都是DATACONTRACT(可以serilizable)。 在MVC應用程序中,在檢索DTO對象後,我將它們轉換爲Viewmodel(它也在內部引用任何集合對象,如IList<ServiceHost.LookupItem>
。是否可以直接使用所有生成的serilized對象,還是必須將每個返回對象轉換/ common.DTO.
對象,然後轉換成視圖模型?
謝謝
我已經經歷了這種方法,並使用svcutil生成代理類,並將其添加到客戶端MVC應用程序(已刪除的服務參考)。現在,雖然返回對象是Common.DTO類型的類型,但沒有提及「Common.DTO」項目。還有一些問題-1。每次服務更新或者任何直接更新服務的方式時,我是否必須生成代理?2)我是否需要在客戶端項目中添加「Common.DTO」,或者是否需要從代理類參考中引用它3)有什麼區別將代理類「COMMON.DTO」和「ServiceHost.DTO」引用爲序列化對象。謝謝 – user3711357
你甚至讀過那篇文章嗎? ** svcutil **與**添加服務參考**一樣糟糕。您的** Common.DTO **應該是您的合同庫,那麼爲什麼要刪除它? 1)是的,這是生成代理的問題。 2)你應該參考** Common.DTO ** 3)再次閱讀文章** – MickyD