OperationContractAttribute.IsInitiating Özellik

Tanım

Yöntemin sunucuda oturum başlatabilecek bir işlem uygulayıp uygulamadığını belirten bir değer alır veya ayarlar (böyle bir oturum varsa).

public:
 property bool IsInitiating { bool get(); void set(bool value); };
public bool IsInitiating { get; set; }
member this.IsInitiating : bool with get, set
Public Property IsInitiating As Boolean

Özellik Değeri

true işlemin sunucuda bir oturum başlatmasına izin verilirse, aksi takdirde , false. Varsayılan değer: true.

Örnekler

Aşağıdaki örnek, üç yöntem belirten bir hizmet sözleşmesi uygulayan bir hizmettir. Hizmet bir oturum gerektirir. Çağıranın ilk çağrısı dışında MethodOnebir işleme yönelikse, kanal reddedilir ve bir özel durum oluşturulur. Arayan, çağırarak MethodOnebir oturum başlattığında, çağıran herhangi bir zamanda çağırarak MethodThreeiletişim oturumunu sonlandırabilir. MethodTwo bir oturum sırasında herhangi bir sayıda çağrılabilir.

[ServiceContract(SessionMode=SessionMode.Required)]
public class InitializeAndTerminateService
{
  [OperationContract(
    IsOneWay=true,
    IsInitiating=true,
    IsTerminating=false
  )]
  public void MethodOne()
  {
    return;
  }

  [OperationContract(
    IsInitiating=false,
    IsTerminating=false
  )]
  public int MethodTwo(int x, out int y)
  {
    y = 34;
    return 0;
  }

  [OperationContract(
    IsOneWay=true,
    IsInitiating=false,
    IsTerminating=true
  )]
  public void MethodThree()
  {
    return;
  }
}

Açıklamalar

özelliği, IsInitiating bir işlemin oturum oluşturulduğunda çağrılan ilk işlem olup olmayacağını denetler.

Note

değeri ServiceContractAttribute.SessionMode veya Allowed olmalıdır Required ve kullanılan bağlama özelliğin düzgün çalışması için IsInitiating oturumlar gerektirmelidir veya izin vermelidir.

Varsayılan değer olan true, bir işlemin kanalda çağrılan ilk işlem olabileceği anlamına gelir. Başlatma yöntemine yapılan sonraki çağrıların, yöntemini çağırmak dışında hiçbir etkisi yoktur. Başka hiçbir oturum oluşturulmaz. Sözleşme oturumu kullanmazsa ayarı IsInitiatingfalse yoksayılır.

Genellikle, istemciler bu yöntemi çağırmadan önce hizmette başka bir yöntemi çağırmaya zorlamak için olarak ayarlanır IsInitiatingfalse . Örneğin, hizmetinizde sipariş kimliği numarasına bağlı bir dizi işlem varsa, bir IsInitiating hizmet işlemi için olarak ayarlayabilir trueGetOrderId ve kalan tüm hizmet işlemlerini olarak falseayarlayabilirsiniz. Bu, her yeni istemcinin hizmet tarafından kullanıma sunulan diğer yöntemleri kullanmadan önce bir sipariş kimliği almasını sağlar.

Note

ve IsInitiating özelliği arasında Action bir etkileşim vardır. Bir hizmet sözleşmesinin özelliği "*" olarak ayarlanmış tek bir hizmet işlemi Action olabilir. Bir hizmet sınıfının uyguladığı aynı dinleme URI'sinde barındırılan tüm hizmet sözleşmeleri grubu, özelliği olarak ayarlandığında "*" olarak ayarlanmış birçok hizmet işlemine ActionIsInitiatingfalsesahip olabilir. Ancak, bu hizmet yöntemlerinden Action yalnızca birinin özelliği "*" olarak, özelliği ise IsInitiating olarak trueayarlanabilir.

Bir hizmet başlatılmayan bir işlem için bir ileti alırsa, hizmet bir ActionNotSupported SOAP hatası döndürür. İstemci bunu olarak FaultExceptiondeneyimler. bir istemci ilk olarak başlatılmayan bir işlemi çağırırsa, istemci çalışma zamanı bir System.InvalidOperationExceptionoluşturur.

Daha fazla bilgi için bkz. Oturumları Kullanma.

Şunlara uygulanır