2010-07-02 157 views
2

我在同一服务主机下托管多个端点,它们实现相同的服务合同。我需要根据端点名称启动不同的业务层,那么有没有办法在我的服务实现构造函数中获取端点名称?基本上,作为一项服务,我需要知道我是从哪个端点开始的。如何从服务实现中读取服务端点名称

回答

3

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

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

,这个端点调度程序有很多,如ContractName,ContractNamespace,的EndpointAddress和其它更多的属性。

请查阅OperationContextEndpointDispatcher的相关MSDN文档,以获取它们提供的属性的详细列表。