OperationContractAttribute.IsInitiating Özellik
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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 için bir oturum gerekir. Çağıranın ilk çağrısı dışında MethodOne
bir işleme yönelikse, kanal reddedilir ve bir özel durum oluşur. Çağıran çağıran öğesini çağırarak MethodOne
bir oturum başlattığında, çağıran herhangi bir zamanda çağrısı MethodThree
yaparak iletiş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 oturum oluşturulduğunda bir işlemin çağrılan ilk işlem olup olmadığını denetler.
Not
değeri ServiceContractAttribute.SessionMode veya Allowed Required olmalıdır 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ı IsInitiating false
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 IsInitiating false
. Örneğin, hizmetinizin sipariş kimliği numarasına bağlı bir dizi işlemi varsa, bir GetOrderId
hizmet işlemi için olarak ayarlayabilir IsInitiating true
ve kalan tüm hizmet işlemlerini olarak false
ayarlayabilirsiniz. Bu, her yeni istemcinin hizmet tarafından kullanıma sunulan diğer yöntemleri kullanmadan önce bir sipariş kimliği almasını sağlar.
Not
ve Action özelliği arasında IsInitiating 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 herhangi bir hizmet sözleşmesi grubu, özelliği olarak ayarlandığında false
özelliği "*" olarak ayarlanmış birçok hizmet işlemine Action IsInitiating sahip olabilir. Ancak, bu hizmet yöntemlerinden yalnızca birinin özelliği "*" ve IsInitiating özelliği olarak ayarlanmış true
olabilirAction.
Bir hizmet başlatılamayan bir işlem için bir ileti alırsa, hizmet bir ActionNotSupported SOAP hatası döndürür. İstemci bunu bir FaultExceptionolarak deneyimler. bir istemci önce 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.