2009-06-30 6 views
12

Se si sta eseguendo nel contesto di una particolare istanza e operazione di servizio, come posso accedere all'istanza del servizio attualmente in esecuzione? Le istanze del servizio non ereditano da qualsiasi specifica classe base comune o interfaccia e l'unico percorso nel contesto esistente che posso trovare è:Come si ottiene l'accesso all'istanza del servizio WCF nel contesto corrente?

OperationContext.Current 

ma io non riesco a trovare tutte le proprietà che fanno riferimento al servizio effettivo istanza stessa in modo che possa lanciarla in ciò che so dovrebbe essere ed eseguire operazioni su di essa.

Senza esplorare perché sto facendo questo (è irrilevante), per favore fatemi sapere se c'è un modo per trovare il riferimento che sto cercando.

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

Siamo spiacenti, potrebbe spiegare un po 'più esattamente quello che stai cercando? OperationContext.Current dovrebbe fornire tutto ciò di cui hai bisogno in un modo o nell'altro. –

+0

Ho aggiornato la domanda con un esempio. –

+0

Sembra che tu non controlli il codice sorgente della classe "Whatever", ma vuoi comunque passare i dati dell'istanza al suo interno. Ho ragione? –

risposta

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

OperationContext.Current dovrebbe avere una proprietà per questo IIRC

Problemi correlati