Serileştirme (Visual Basic)
Serileştirme, nesneyi depolamak veya belleğe, veritabanına veya dosyaya aktarmak için bir nesneyi bayt akışına dönüştürme işlemidir. Ana amacı, gerektiğinde yeniden oluşturabilecek bir nesnenin durumunu kaydetmektir. Ters işleme, deserialization adı verilen bir işlemdir.
Serileştirme Nasıl Çalışır?
Bu çizimde serileştirmenin genel süreci gösterilmiştir.

Nesnesi, yalnızca verileri değil, sürümü, kültürü ve derleme adı gibi nesnenin türüyle ilgili bilgileri de taşıyan bir akışa seri hale getirildi. Bu akış bir veritabanında, dosyada veya bellekte depolanıyor olabilir.
Serileştirme için Kullanımlar
Serileştirme, geliştiricinin bir nesnenin durumunu kaydetmelerini ve gerektiğinde yeniden oluşturmalarını sağlayarak hem nesnelerin depolanmasına hem de veri değişimine olanak sağlar. Bir geliştirici serileştirme aracılığıyla nesneyi Web Hizmeti aracılığıyla uzak bir uygulamaya gönderme, bir etki alanındaki nesneyi başka bir etki alanına geçirme, bir nesneyi güvenlik duvarından XML dizesi olarak geçirme veya uygulamalar arasında güvenlik ya da kullanıcıya özgü bilgileri koruma gibi eylemler gerçekleştirebilir.
Nesneyi Seri Hale Getirme
Bir nesneyi serileştirmek için seri hale getirilecek nesne, serileştirilmiş nesnesini içeren bir akış ve bir Formatter gerekir. System.Runtime.Serialization , nesneleri seri hale getirme ve seriden seriden serileştirme için gereken sınıfları içerir.
Bu SerializableAttribute tür örneklerinin seri hale getirilene olduğunu belirtmek için özniteliğini bir türe uygulama. Seri SerializationException hale getirme girişiminde bulundursanız ancak türün özniteliği yoksa bir özel durum SerializableAttribute oluşturur.
Sınıf içindeki bir alanın serileştirilebilir olması istemiyorsanız özniteliğini NonSerializedAttribute kullanın. Seri hale getirilebilir türde bir alan bir işaretçi, tanıtıcı veya belirli bir ortama özgü başka bir veri yapısı içeriyorsa ve alan farklı bir ortamda anlamlı bir şekilde yeniden bulunamazsa, bunu seri hale getirilemez hale getirebilirsiniz.
Serileştirilmiş bir sınıf işaretlenen diğer sınıfların nesnelerine başvurular SerializableAttribute içeriyorsa, bu nesneler de seri hale getirilecek.
İkili ve XML Serileştirme
İkili veya XML serileştirme kullanılabilir. İkili serileştirmede, salt okunur olanlar bile tüm üyeler seri hale getirildi ve performans artırıldı. XML serileştirme, daha okunabilir kod ve birlikte çalışabilirlik amacıyla nesne paylaşımı ve kullanımı için daha fazla esneklik sağlar.
İkili Serileştirme
İkili serileştirme, depolama veya yuva tabanlı ağ akışları gibi kullanımlar için sıkıştırılmış serileştirme üretmek için ikili kodlama kullanır.
XML seri hale getirme
XML serileştirme, bir nesnenin ortak alanlarını ve özelliklerini veya yöntemlerin parametrelerini ve dönüş değerlerini belirli bir XML Şeması tanım dili (XSD) belgesine uygun bir XML akışında seri hale getirmektedir. XML serileştirme, genel özelliklere ve XML'e dönüştürülen alanlara sahip kesin olarak türü kesin olarak yazmış sınıflarla sonuç verir. System.Xml.Serialization , XML seri hale getirme ve seriden seriden serileştirme için gerekli sınıfları içerir.
Sınıfın bir örneğini seri hale getirme veya seri durumdan nasıl seri durumdan olduğunu kontrol etmek için sınıflara ve sınıf XmlSerializer üyelerine öznitelikler uygulayabilirsiniz.
Temel ve Özel Serileştirme
Serileştirme iki şekilde yapılabilir: temel ve özel. Temel serileştirme, nesneyi .NET Framework için temel serileştirmeyi kullanır.
Temel Serileştirme
Temel serileştirmede tek gereksinim, nesnenin özniteliğinin uygulanmış SerializableAttribute olmasıdır. NonSerializedAttribute, belirli alanların seri hale getirilemeyecek şekilde kullanılabilir.
Temel serileştirmeyi kullanırken, nesnelerin sürüm oluşturma sorunları oluşturabilir, bu durumda özel serileştirme tercih edilebilir. Temel serileştirme serileştirme gerçekleştirmenin en kolay yolu, ancak işlem üzerinde çok fazla denetim sağlamaz.
Özel Serileştirme
Özel serileştirmede, tam olarak hangi nesnelerin seri hale getirileceklerini ve nasıl olacağını belirtebilirsiniz. sınıfı işaret olmalı ve SerializableAttribute arabirimini ISerializable uygulamalı.
Nesnenizin de özel bir şekilde de sıra dışı hale getirildiklerini görmek için özel bir oluşturucu kullanmalıdır.
Tasarımcı Serileştirme
Tasarımcı serileştirme, genellikle geliştirme araçlarıyla ilişkili nesne kalıcılığı türü içeren özel bir serileştirme biçimidir. Tasarımcı serileştirme, nesne grafını daha sonra nesne grafiğini kurtarmak için kullanılan bir kaynak dosyaya dönüştürme işlemidir. Kaynak dosya kod, işaretleme ve hatta tablo SQL içerebilir.
İlgili Konular ve Örnekler
Adım adım kılavuz: Nesne nesnelerini Visual Studio (Visual Basic)
Bir nesnenin verilerini örnekler arasında kalıcı hale getirerek değerleri depolamanıza ve nesnenin bir sonraki örneği oluşturmada bunları alamanıza olanak sağlayan serileştirmenin nasıl kullanıla olduğunu gösterir.
Nasıl kullanılır: Bir XML Dosyasından Nesne Verilerini Okuma (Visual Basic)
sınıfını kullanarak daha önce bir XML dosyasına yazılmış nesne verilerini okumayı XmlSerializer gösterir.
Nasıl kullanılır: Nesne Verilerini BIR XML Dosyasına Yazma (Visual Basic)
sınıfını kullanarak bir sınıftan BIR XML dosyasına nesne yazmayı XmlSerializer gösterir.