2010-07-02 86 views
2

我在同一服務主機下託管多個端點,它們實現相同的服務合同。我需要根據端點名稱啓動不同的業務層,那麼有沒有辦法在我的服務實現構造函數中獲取端點名稱?基本上,作爲一項服務,我需要知道我是從哪個端點開始的。如何從服務實現中讀取服務端點名稱

回答

3

你可以在你的服務代碼檢查出OperationContext.Current; - 它包含了除其他事物的EndpointDispatcher

OperationContext ctx = OperationContext.Current; 
EndpointDispatcher epd = ctx.EndpointDispatcher; 

,這個端點調度程序有很多,如ContractName,ContractNamespace,的EndpointAddress和其它更多的屬性。

請查閱OperationContextEndpointDispatcher的相關MSDN文檔,以獲取它們提供的屬性的詳細列表。