2012-05-02 77 views
0

我想創建一個Windows窗體應用程序創建WCF服務,如何在Windows窗體

但我想這個寡婦形式應承載WCF服務器,以便其他應用程序將能夠與Windows應用程序進行通信。

因此,我添加到WCF合同的Windows應用程序項目接口,並添加實現此接口的類。

現在的Windows窗體應用程序的構造函數我加上

ServiceHost calcHost = new ServiceHost(typeof(Service)); 
calcHost.Open(); 

,現在我需要實現的WCF方法將能夠與Windows窗體進行交互。

我無法做到這一點。

我的問題是 - 我的架構是否正確,或者我需要以不同的方式創建WCF,如果它沒問題,WCF應該如何與Windows窗體應用程序交互?

+1

通常情況下,Windows應用程序可以啓動和停止在用戶的任何時間。 WCF服務應始終可用(通常也是...)。所以在架構上,這些應該是兩個獨立的組件。 Windows應用程序應該儘可能輕鬆,調用WCF服務。 –

+0

我知道,但在這種情況下,對我來說是好的 – MoShe

+0

winforms將具有其他功能,或只有WCF服務? –

回答

1

如果你想要調用wcf服務來改變windows窗體,那麼我認爲你需要將你的表單的引用傳遞給你的WCF服務,然後讓你的服務方法在你的表單調用方法時調用它們。

我認爲您需要創建自己的服務主機實現,以便您可以將對錶單的引用傳遞給主機創建的服務實例(或將您的服務作爲單例託管)。有關更多詳情,請參閱this question

+1

你能解釋我應該怎麼做嗎?我應該如何添加保證?在構造函數中?爲什麼我應該使用'ServiceHost calcHost = new ServiceHost(typeof(Service)); calcHost.Open();' – MoShe