2010-03-09 30 views

回答

2

您可以撥打服務電話本身...
該實例確實只在請求進入時創建,您無法訪問尚未提供的服務。

但嚴重的是,試着解決這個問題。你在實現類的構造函數中不能做什麼需要它?

+1

感謝確認(這是關於一個自稱一個有趣的想法)。我試圖將監聽器添加到單例中存在的事件,以便我可以儘可能地保持單例的可重用性。如果這是WCF的不正確做法,請高興看看替代方案。長話短說我試圖根據進來的請求在窗體上生成一些統計數據。 – InvertedAcceleration

0

....你也許可以做瘋狂的事情與自定義IInstanceContextProvider ......想這是不值得的,雖然....

8

我知道這個問題是有點老了,但我米麪臨類似的問題,並認爲我找到了解決方案。有一個版本的ServiceHost構造函數需要引用實例,而不是類型: http://msdn.microsoft.com/en-us/library/ms585487.aspx#Y342

因此,您可以先創建實例,然後將其傳遞給ServiceHost構造函數。我還沒有嘗試過,但它看起來應該這樣做。一定要閱讀關於釋放實例的評論。當你使用這個構造函數。

+1

這應該是選擇的答案。 – Kobor42

+0

我知道這個答案有點舊,但我現在面臨同樣的問題。我嘗試了替代構造函數,主機打開時沒有錯誤,但客戶端無法連接到它。你有這個工作嗎?如果是這樣,一個例子將是如此之大 – GuidoG

+0

對不起,但我幫不了你。我在幾年內沒有與WCF合作過,也無法訪問相關的源代碼。我只知道我確實使用了這個構造函數,但我不記得任何細節。 –

0

您可以使用類和存儲實例對象的構造函數時,它是通過WCF的ServiceHost創建

相關問題