2014-06-26 8 views
5

Sto guardando la System.ServiceModel.OperationContextQual è la differenza tra Current, InstanceContext RequestContext su OperationContext?

http://msdn.microsoft.com/en-us/library/system.servicemodel.operationcontext(v=vs.110).aspx

Sto cercando di capire la differenza tra:

OperationContext.Current 
OperationContext.InstanceContext 
OperationContext.RequestContext 

Nel mio test, che sembrano essere la stessa. Cosa mi manca?

+0

Cosa stai facendo nel vostro test? Io, che cosa stai vedendo nei tuoi test che ti porta a credere che siano uguali? – Tim

risposta

4

Bene, la risposta ovvia è che non sono esattamente la stessa cosa. Ad un livello elevato sono tre diversi tipi, non ereditati da un'interfaccia comune. più specificamente hanno proprietà diverse l'una dall'altra. Ma dal modo in cui stai facendo la tua domanda sembra che ti interessi anche a ciò per cui ognuno è usato.

Osservando la documentazione di msdn, ho tirato fuori alcuni punti dalle osservazioni con alcuni dei miei pensieri, sul motivo per cui ha ciascuno dei contesti.

corrente (OperationContext): "Il contesto operazione viene utilizzata per accedere ai canali di richiamata nei servizi duplex, per memorizzare i dati di stato aggiuntivi attraverso porzioni delle operazioni, e per accedere alle intestazioni dei messaggi in arrivo e le proprietà così come aggiungere intestazioni dei messaggi in uscita e proprietà."

RequestContext: "l'oggetto RequestContext è il collegamento tra la richiesta che arriva e la risposta che esce" questo oggetto è davvero incentrato sull'accesso e il controllo delle richieste e delle risposte nel servizio.

InstanceContext: nessun commento msdn qui, ma guardandolo, ti dà un controllo più approfondito sullo stato dell'infrastruttura di comunicazione. i canali di comunicazione, gli host e le estensioni.

Ecco le specifiche articoli MSDN Stavo guardando per ogni

OperationContext: http://msdn.microsoft.com/en-us/library/system.servicemodel.operationcontext(v=vs.110).aspx

RequestContext: http://msdn.microsoft.com/en-us/library/system.servicemodel.channels.requestcontext(v=vs.110).aspx

InstanceContext: http://msdn.microsoft.com/en-us/library/system.servicemodel.instancecontext(v=vs.110).aspx

Problemi correlati