CommunicationState Sabit listesi
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.
bir ICommunicationObject bulunabileceği durumları tanımlar.
public enum class CommunicationState
public enum CommunicationState
type CommunicationState =
Public Enum CommunicationState
- Devralma
Alanlar
| Name | Değer | Description |
|---|---|---|
| Created | 0 | İletişim nesnesinin örneklendiğini ve yapılandırılabilir olduğunu, ancak henüz açık olmadığını veya kullanıma hazır olmadığını gösterir. |
| Opening | 1 | İletişim nesnesinin durumdan Created duruma Opened geçirildiğini gösterir. |
| Opened | 2 | İletişim nesnesinin artık açık ve kullanılmaya hazır olduğunu gösterir. |
| Closing | 3 | İletişim nesnesinin duruma geçtiğini Closed gösterir. |
| Closed | 4 | İletişim nesnesinin kapatıldığını ve artık kullanılamadığını gösterir. |
| Faulted | 5 | İletişim nesnesinin kurtaramadığı ve artık kullanılamadığı bir hata veya hatayla karşılaştığını gösterir. |
Açıklamalar
Bu numaralandırma kanallar, dinleyiciler, fabrikalar, dağıtıcılar ve hizmet konakları dahil olmak üzere sistemdeki tüm iletişim nesneleri için geçerli olan durumları tanımlar.
Bu durumlar ve bunlarla ilişkilendirilebilen olaylar arasındaki geçişleri yöneten yöntemler arabirimde ICommunicationObject tanımlanır. Bir nesnenin durumu özelliği kullanılarak State elde edilebilir.
Bir iletişim nesnesinin kaplayabileceğiniz dört ana durum ve iki geçici durum vardır. Ana durumlar şunlardır:
Oluşturuldu
Açıldı
Kapalı
Arızalı
Bu ana durumlar arasında geçiş yaparken bir iletişim nesnesinin kaplayabileceğiniz iki geçici durum şunlardır:
Açılış
Kapanış
İletişim nesnesi Oluşturuldu durumunda yapılandırılabilir. Örneğin, özellikleri değiştirilebilir ve olayları kaydedilebilir. Bu durumda hiçbir giriş veya çıkış gerçekleşemez. Bu nedenle, örneğin iletiler bu durumdaki bir kanaldan gönderilemez veya alınamaz.
Açma, yöntem çağrıldığında iletişim nesnesinin Open girdiği geçici bir durumdur. Türetilmiş sınıflarda aksi belirtilmedikçe, açma durumundaki nesneler yapılandırılamaz. Bu geçiş durumu yalnızca Oluşturuldu durumundan girilebilir.
Nesneler, açma işlemi tamamlandığında Açık duruma geçirilir. Bu Açık duruma geçiş yalnızca Açma durumundan geçerlidir. Türetilmiş sınıflarda aksi belirtilmedikçe, nesnenin yapılandırması artık devre dışı bırakılır. Bu noktada, nesne ileti aktarımları için tamamen kullanılabilir.
Kapatma, yöntem düzgün bir kapatma için çağrıldığında veya nesne durdurulduğunda Close nesnenin girdiği geçici bir durumdur. Bu noktada, nesne (henüz kullanılmıyorsa) kullanılamaz duruma gelir. Bu geçiş, Kapalı durumu dışında herhangi bir durumdan geçerlidir.
Kapalı durumu atılmakla eşdeğerdir ve nesnenin yapılandırması yine de incelenebilir.
Hatalı durum, nesnenin artık kullanılamadığı bir duruma geçtiğini belirtmek için kullanılır. Bunun gerçekleşebileceği iki birincil senaryo vardır:
Open Yöntem herhangi bir nedenle başarısız olursa, nesne hatalı duruma geçirilir.
Oturum tabanlı bir kanal kurtaramadığı bir hata algılarsa hatalı duruma geçirilir. Bu durum, örneğin bir protokol hatası olduğunda (yani, geçersiz bir zamanda bir protokol iletisi alıyorsa) veya uzak uç nokta oturumu durdurursa oluşabilir.
Hatalı durumdaki bir nesne kapatılmaz ve kaynakları tutuyor olabilir. Abort yöntemi, hatalı bir nesneyi kapatmak için kullanılmalıdır. Hatalı durumundaki bir nesnede çağrılırsa Close , nesne düzgün bir şekilde kapatılamadığından bir CommunicationObjectFaultedException oluşturulur.