2009-06-30 29 views
12

Belirli bir hizmet örneği ve işlem bağlamında yürütüyorsam, şu anda yürütmekte olan hizmet örneğine nasıl erişebilirim?Geçerli bağlamda WCF hizmet örneğine nasıl erişebilirim?

OperationContext.Current 

ama gerçek hizmet başvurmak herhangi özelliklerini bulmak için görünmüyor olabilir: Hizmet örneği herhangi bir spesifik ortak temel sınıf veya arayüz ve bulabilirim mevcut bağlam içine tek yolunun devralan kalmamasıdır Örnek olarak, bildiğim şeye yapabilmem ve üzerinde işlem yapabilmem için. Ben (bu alakasız) yapıyorum neden keşfetmek olmadan

, aradığım referans bulmak için herhangi bir yol olup olmadığını lütfen bildirin.

DÜZENLEME:

[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

Maalesef bu IIRC için bir mülk olmalıdır, daha tam olarak aradığınızı biraz açıklayabilir? OperationContext.Current, ihtiyacınız olan her şeyi bir şekilde veya başka bir şekilde sağlamalıdır. –

+0

Soruyu bir örnekle güncelledim. –

+0

siz "ne olursa olsun" sınıfının kaynak kodunu kontrol etmiyoruz gibi görünüyor, ama yine de içine örnek veri geçmek istiyorum. Ben haklı mıyım –

cevap

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

OperationContext.Current

İlgili konular