2014-02-07 40 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提供的服务的名称。