Aracılığıyla paylaş


Seri -leştirme

Serileştirme, C veri yapılarındaki değerleri (yapılar, diziler ve ilkel değerler) XML öğesi olarak yazma işlemidir. Seri durumdan çıkarma işlemi ters işlemdir.

Serileştirme, C veri yapılarındaki değerleri (yapılar, diziler ve ilkel değerler) XML öğesi olarak yazma işlemidir. Seri durumdan çıkarma işlemi ters işlemdir.

Her iki işlem de C veri yapıları ile XML arasındaki eşlemenin açıklamasına dayanır.

serileştirme ve seri durumdan çıkarmanın C veri yapıları ile XML arasındaki eşlemenin açıklamasını nasıl temel aldığına ilişkin Diyagramı.

Bir değeri serileştirmek için, uygulama WsWriteElementçağırır WsWriteAttribute veya WsWriteType.

Bir değeri seri durumdan çıkarmak için, uygulama WsReadElementçağırır WsReadAttribute veya WsReadType.

Güvenlik

XML Okuyucusu seri durumdan çıkarma işleminde kullanılır. XML ile ilgili güvenlik bilgileri için XML Okuyucu'daki güvenlik bölümüne bakın.

Seri durumdan çıkarıcı, seri durumdan çıkarılmakta olan öğeyi okumayı tamamlayana kadar verileri seri durumdan kaldırmaya devam eder. Seri durumdan çıkarılmakta olan verilerin açıklamasına uymayan herhangi bir XML belgesiyle karşılaştığında seri durumdan çıkarma işlemi başarısız olur. Bu noktada kullanılan XML okuyucu geçersiz hale gelir ve bir hata döndürülür.

Varsayılan olarak seri durumdan çıkarma katıdır. Seri durumdan çıkarmanın başarısız olmasına neden olan bazı koşullar şunlardır ancak bunlarla sınırlı değildir:

  • Beklenen öğeler eksik
  • Gerekli öğeler arasında beklenmeyen öğe alanları görünüyor
  • gerekli alanlardan sonra ek öğe içeriği, WS_STRUCT_IGNORE_TRAILING_ELEMENT_CONTENT
  • WS_STRUCT_IGNORE_UNHANDLED_ATTRIBUTES bayrağı belirtilmediği sürece beklenmeyen öznitelikler
  • Belirtilen aralığın dışında beklenmeyen veri türü değeri
  • Yinelenen öğe sayısı belirtilen aralığın dışında

Büyük miktarda veriyi seri hale getirme aşırı bellek ayırmaya neden olabilir ve hizmet reddi saldırısına neden olabilir. Verileri seri durumdan çıkaran kullanıcının verileri ayırmak için bir Yığın nesnesi belirtmesi gerekir ve kullanıcı bellek ayırma saldırısını önlemek için yığın ayırma sınırını kullanabilir.

Dize için maksimum uzunluk, dizideki en fazla öğe sayısı vb. dahil olmak üzere veri türleri için aralık desteği, kullanıcının farklı veri türleri için maksimum boyutu denetlemesine olanak tanır. Kullanıcı, farklı verilerin boyut üst sınırını sınırlamak için veri açıklamasında veya şemada aralık belirtebilir.

Ekli sıfır içeren dize değeri tel biçimlerinde (metin, ikili, MTOM) desteklenir. Ekli sıfır içeren bir dizenin seri durumdan çıkarıldığında, sıfırın dize uzunluğunun hesaplanmasıyla karıştırılmaması için kullanıcının sayılan bir dize (WS_STRING) kullanması gerekir. Katıştırılmış sıfır içeren bir dize değeri, sıfır sonlandırılan bir dize bekleyen bir alana seri durumdan çıkarılırsa, hata döndürülür ve seri durumdan çıkarma başarısız olur. Veri açıklamaları oluşturmak için wsutil kullanılıyorsa, eklenmiş sıfır içeren dize bekleniyorsa /string:WS_STRING seçeneği kullanılmalıdır.

Serileştirme ile aşağıdaki geri çağırmalar kullanılır:

Serileştirme ile aşağıdaki numaralandırmalar kullanılır:

Serileştirme ile aşağıdaki işlevler kullanılır:

  • WsReadAttribute
  • WsReadElement
  • WsReadType
  • WsWriteAttribute
  • WsWriteElement
  • WsWriteType

Serileştirme ile aşağıdaki yapılar kullanılır: