Aracılığıyla paylaş


InstanceContext.GetServiceInstance Yöntem

Tanım

Hizmetin örneğini döndürür.

Aşırı Yüklemeler

GetServiceInstance()

Örnek bağlamı için hizmetin örneğini döndürür.

GetServiceInstance(Message)

Gelen iletiye yanıt olarak örnek bağlamı için hizmetin örneğini döndürür.

GetServiceInstance()

Örnek bağlamı için hizmetin örneğini döndürür.

public:
 System::Object ^ GetServiceInstance();
public object GetServiceInstance ();
member this.GetServiceInstance : unit -> obj
Public Function GetServiceInstance () As Object

Döndürülenler

Object

Hizmet örneğini temsil eden nesne.

Özel durumlar

Hizmet örneği oluşturuldu veya açılıyor veya başlatılmadı.

Hizmet örneği durduruldu.

Hizmet örneği zaten kapatıldı ve bu durumlarda değiştirilemez.

Hizmet örneği hatalı ve bu durumlarda değiştirilemez.

Örnekler

Uri baseAddress = new Uri("http://localhost:8000/ServiceModelSamples/service");

// Create a ServiceHost for the CalculatorService type and provide the base address.
using (ServiceHost serviceHost = new ServiceHost(typeof(CalculatorService), baseAddress))
{
    serviceHost.Open();
    OperationContext operationContext = OperationContext.Current;
    InstanceContext instanceContext = operationContext.InstanceContext;
    CalculatorService service = (CalculatorService) instanceContext.GetServiceInstance();
}

Şunlara uygulanır

GetServiceInstance(Message)

Gelen iletiye yanıt olarak örnek bağlamı için hizmetin örneğini döndürür.

public:
 System::Object ^ GetServiceInstance(System::ServiceModel::Channels::Message ^ message);
public object GetServiceInstance (System.ServiceModel.Channels.Message message);
member this.GetServiceInstance : System.ServiceModel.Channels.Message -> obj
Public Function GetServiceInstance (message As Message) As Object

Parametreler

message
Message

Hizmet nesnesinin oluşturulmasını tetikleyen gelen ileti.

Döndürülenler

Object

Hizmet örneğini temsil eden nesne.

Özel durumlar

Hizmet örneği oluşturuldu veya açılıyor veya başlatılmadı.

Hizmet örneği durduruldu.

Hizmet örneği zaten kapatıldı ve bu durumlarda değiştirilemez.

Hizmet örneği hatalı ve bu durumlarda değiştirilemez.

Örnekler

Uri baseAddress = new Uri("http://localhost:8000/ServiceModelSamples/service");

// Create a ServiceHost for the CalculatorService type and provide the base address.
using (ServiceHost serviceHost = new ServiceHost(typeof(CalculatorService), baseAddress))
{
    serviceHost.Open();
    OperationContext operationContext = OperationContext.Current;
    InstanceContext instanceContext = operationContext.InstanceContext;
    CalculatorService service = (CalculatorService)instanceContext.GetServiceInstance(msg);
}

Açıklamalar

Genel fikir, hizmetin yalnızca yönlendirilen bir ileti geldiğinde çağırarak Openbir örneğini oluşturmanızdır; bu durumda hiçbir ileti gelmezse hiçbir InstanceContext ileti oluşturulmaz ve hizmet nesnesi oluşturulmaz ve bu nedenle kaynaklar gerçekten gerekli olana kadar dağıtılmaz.

Şunlara uygulanır