2014-02-07 38 views
1

我有幾個WCF Web服務。它們都在相同的AppDomain中運行並共享各種程序集。從任何程序集中的任何方法,我如何確定調用它的Web服務類的特定實例? (即,不是調用它的直接方法,而是運行它的Web服務)確定Web服務的實例

其實我只需要Web服務類的類型,而不是特定的實例,但如果我有實例,我可以獲得類型。我還沒有發現任何其他人提出這個問題,所以要麼我接近它錯誤,要麼我錯過了一些基本的東西。

+0

我不知道我的答案是否幫助你,但這是新的c#版本中的功能 –

+1

你看過OperationContext.Current嗎? –

+0

@IanGilroy還沒有。看起來我可能能夠使用OperationContext.Current.EndpointDispatcher.ContractName! – jltrem

回答

0

我有幾個WCF Web服務。它們都在相同的AppDomain中運行,共享各種程序集。從任何程序集中的任何方法,我如何確定 調用它的web服務類的特定實例?

OperationContext.Current.Host獲取當前服務對象的System.ServiceModel.ServiceHost。所以OperationContext.Current.Host.Description.Name返回服務的名稱。

在web服務的初始化,的ServiceHostFactory.CreateServiceHost可以設置一個代表超控(待整個代碼庫調用),將根據OperationContext.Current.Host.Description.Name提供的服務的名稱。