2009-06-30 8 views
12

Si j'exécute dans le contexte d'une instance de service et d'une opération particulière, comment puis-je accéder à l'instance de service en cours d'exécution? semblentComment accéder à l'instance de service WCF dans le contexte actuel?

OperationContext.Current 

mais je ne peux pas trouver des propriétés qui font référence au service réel: les instances de service ne héritent de toute classe de base ou d'une interface commune spécifique et la seule voie dans le contexte actuel que je peux trouver est instance lui-même afin que je puisse le jeter à ce que je sais qu'il devrait être et effectuer des opérations sur elle. Sans explorer pourquoi je fais cela (c'est sans importance), s'il vous plaît laissez-moi savoir s'il y a un moyen de trouver la référence que je cherche.

EDIT:

[ServiceContract] 
public interface IInventory 
{ 
    [OperationContract] 
    List<DealInfo> ListDeals(DealQueryOptions options); 
} 

// This is the object I will need access to the current instance of 
public class Inventory : ServiceBase<Inventory>, IInventory 
{ 
    public List<DealInfo> ListDeals(DealQueryOptions options) 
    { 
     var obj = new Whatever(); // see below 
    } 
} 

public class Whatever 
{ 
    public Whatever() 
    { 
     // how do I get access to the service instance here? 
     // assume that in this context we are not allowed to 
     // pass the service instance to this class; this class 
     // must automatically discover the instance itself. 
    } 
} 
+0

Désolé, pourriez-vous expliquer un peu plus exactement ce que vous cherchez? OperationContext.Current devrait fournir tout ce dont vous avez besoin d'une manière ou d'une autre. –

+0

J'ai mis à jour la question avec un exemple. –

+0

Il semblerait que vous ne contrôliez pas le code source de la classe "Whatever", mais que vous souhaitiez toujours lui transmettre des données d'instance. Ai-je raison? –

Répondre

18
var myService = OperationContext.Current.InstanceContext.GetServiceInstance(); 
0

OperationContext.Current devrait avoir une propriété pour ce IIRC

Questions connexes