2012-07-22 84 views
4

我在PRISM體系結構中有一個WPF應用程序。WPF + PRISM - 我應該將WCF客戶端注入View-Model嗎?

從我在網上讀,我看到了,這是最好的,如果查看的模型調用WCF服務操作在異步方式,也 - 這是最好爲每個操作一個新的連接。 (我被告知讓連接長時間不活動)。

我的問題是 - 我應該如何注入WCF客戶端到我的視圖模型?

如果我簡單地爲'自動生成的'客戶端創建一個接口並注入接口 - 這將在我的View-Model構造器中爲客戶端創建一個實例,但如果我想要爲我在窗口中執行的每個操作創建一個新客戶端。

爲此 - 我需要像'客戶工廠'的東西被注入。

任何人都可以提出他的意見嗎?

回答

0

首先,IMVHO的WCF調用最好在模型中去,而不是ViewModel。

您可以創建一個工廠助手類,將其傳遞給一個接口,並傳回一個實現該接口的具體實例。工廠幫手仍然可以使用PRISM的接口解決一個具體的類型,類型將解決一切您已經註冊他們,你會得到一個新的實例提供每一次你沒有用一生經理註冊它們。

工廠幫手內使用PRISM有助於保持整個事情非常單元測試 - 你可以在測試時模擬出的WCF相關的代理類,和目標模型將永遠不會知道其中的差別。如果你真的想遵循dependency injection模式,那麼你可以在構造函數中注入工廠幫助器。

+0

問題是 - 我使用MEF做引導和MEF不支持「一般對象」,如「模板工廠」。任何其他想法? – 2012-07-22 09:56:15

+0

@John使用MEF加載模塊,然後使用Prism來解析/加載各種視圖/視圖模型。或者,如果你不想混了兩下,降MEF和使用棱鏡[加載你的模塊(http://msdn.microsoft.com/en-us/library/gg405479%28v=pandp.40%29) 。 – slugster 2012-07-23 10:17:13

相關問題