2010-07-02 7 views
2

J'héberge plusieurs points de terminaison sous le même hôte de service, qui implémentent le même contrat de service. J'ai besoin de démarrer une couche de gestion différente en fonction du nom du point de terminaison, donc est-il possible d'obtenir un nom de point de terminaison dans mon constructeur d'implémentation de service? Fondamentalement, en tant que service, j'ai besoin de savoir quel point de terminaison j'ai commencé sous.Comment lire le nom du noeud final de service à partir de l'implémentation de service interne

Répondre

3

Vous pouvez consulter le OperationContext.Current; dans votre code de service - il contient entre autres un EndpointDispatcher:

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

Ce répartiteur de point final a beaucoup de propriétés telles que ContractName, ContractNamespace, EndpointAddress et beaucoup plus.

Consultez la documentation MSDN correspondante pour OperationContext et EndpointDispatcher pour la liste détaillée des propriétés qu'ils vous fournissent.

Questions connexes