Serileştirme (Visual Basic)

Serileştirme, nesneyi depolamak veya belleğe, veritabanına veya dosyaya aktarmak için nesneyi bayt akışına dönüştürme işlemidir. Temel amacı, gerektiğinde yeniden oluşturabilmek için bir nesnenin durumunu kaydetmektir. Ters işleme seri durumdan çıkarma denir.

Serileştirme Nasıl Çalışır?

Bu çizimde genel serileştirme işlemi gösterilmektedir.

Serialization graphic

Nesne, yalnızca verileri değil, nesnenin türüyle ilgili sürüm, kültür ve derleme adı gibi bilgileri de taşıyan bir akışa seri hale getirilir. Bu akıştan bir veritabanında, dosyada veya bellekte depolanabilir.

Serileştirme için Kullanımlar

Seri hale getirme, geliştiricinin bir nesnenin durumunu kaydetmesine ve gerektiğinde yeniden oluşturmasına olanak tanır ve nesnelerin depolanmasını ve veri alışverişini sağlar. Bir geliştirici, serileştirme aracılığıyla nesneyi Web Hizmeti aracılığıyla uzak bir uygulamaya gönderme, bir nesneyi bir etki alanından diğerine geçirme, nesneyi bir güvenlik duvarından XML dizesi olarak geçirme veya uygulamalar arasında güvenlik veya kullanıcıya özgü bilgileri koruma gibi eylemler gerçekleştirebilir.

Nesneyi SeriLeştirilebilir Hale Getirme

Bir nesneyi seri hale getirmek için, nesnenin seri hale getirilmeye, serileştirilmiş nesneyi içeren bir akışa ve bir Formatteröğesine ihtiyacınız vardır. System.Runtime.Serialization , nesneleri seri hale getirme ve seri durumdan çıkarma için gereken sınıfları içerir.

Bu türün örneklerinin SerializableAttribute seri hale getirilebileceğini belirtmek için özniteliğini bir türe uygulayın. Seri SerializationException hale getirme girişiminde bulunursanız ancak türü özniteliğine SerializableAttribute sahip değilse bir özel durum oluşturulur.

Sınıfınızdaki bir alanın seri hale getirilebilir olmasını istemiyorsanız özniteliğini NonSerializedAttribute uygulayın. Seri hale getirilebilir türde bir alan belirli bir ortama özgü bir işaretçi, tanıtıcı veya başka bir veri yapısı içeriyorsa ve alan farklı bir ortamda anlamlı bir şekilde yeniden oluşturulamıyorsa, onu seri durumdan çıkarılamaz hale getirmek isteyebilirsiniz.

Seri hale getirilmiş bir sınıf, işaretlenmiş SerializableAttributediğer sınıfların nesnelerine başvurular içeriyorsa, bu nesneler de seri hale getirilir.

İkili ve XML Serileştirme

İkili veya XML serileştirme kullanılabilir. İkili serileştirmede, salt okunur olanlar bile tüm üyeler seri hale getirilir ve performans iyileştirilir. XML serileştirmesi, daha okunabilir bir kodun yanı sıra birlikte çalışabilirlik amacıyla nesne paylaşımı ve kullanımı konusunda 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 oluşturmak için ikili kodlama kullanır.

XML seri hale getirme

XML serileştirmesi, bir nesnenin genel alanlarını ve özelliklerini veya yöntemlerin parametrelerini ve dönüş değerlerini belirli bir XML Şema tanım dili (XSD) belgesine uygun bir XML akışında serileştirir. XML serileştirmesi, ortak özelliklere ve XML'ye dönüştürülen alanlara sahip kesin olarak belirlenmiş sınıflarla sonuçlanır. System.Xml.Serialization XML'yi seri hale getirme ve seri durumdan çıkarma için gereken sınıfları içerir.

Sınıfın bir örneğini serileştirme veya seri durumdan XmlSerializer çıkarma biçimini denetlemek için sınıflara ve sınıf üyelerine öznitelikler uygulayabilirsiniz.

Temel ve Özel Serileştirme

Serileştirme, temel ve özel olmak üzere iki şekilde gerçekleştirilebilir. Temel serileştirme, nesneyi otomatik olarak seri hale getirmek için .NET Framework kullanır.

Temel Serileştirme

Temel serileştirmedeki tek gereksinim, nesnenin özniteliğinin SerializableAttribute uygulanmış olmasıdır. NonSerializedAttribute belirli alanların seri hale getirilmesini korumak için kullanılabilir.

Temel serileştirme kullandığınızda, nesnelerin sürüm oluşturması sorunlara neden olabilir ve bu durumda özel serileştirme tercih edilebilir. Temel serileştirme, serileştirme gerçekleştirmenin en kolay yoludur, ancak işlem üzerinde fazla denetim sağlamaz.

Özel Serileştirme

Özel serileştirmede, tam olarak hangi nesnelerin seri hale getirileceğini ve nasıl yapılacağını belirtebilirsiniz. sınıfı işaretlenmeli SerializableAttribute ve arabirimini ISerializable uygulamalıdır.

Nesnenizin de özel bir şekilde seri durumdan çıkarılmasını istiyorsanız, özel bir oluşturucu kullanmanız gerekir.

Tasarımcı Serileştirme

Tasarımcı serileştirme, genellikle geliştirme araçlarıyla ilişkili nesne kalıcılığı türünü içeren özel bir serileştirme biçimidir. Tasarımcı serileştirme, nesne grafını daha sonra nesne grafını kurtarmak için kullanılabilecek bir kaynak dosyaya dönüştürme işlemidir. Kaynak dosya kod, işaretleme ve hatta SQL tablo bilgilerini içerebilir.

İlgili Konular ve Örnekler

İzlenecek yol: Nesneyi Visual Studio'da Kalıcı Hale Getirin (Visual Basic)
Bir nesnenin verilerini örnekler arasında kalıcı hale getirmek için serileştirmenin nasıl kullanılabileceğini gösterir; böylece değerleri depolayabilir ve nesnenin bir sonraki örneği oluşturulurken bunları alabilirsiniz.

Nasıl yapılır: XML Dosyasından Nesne Verilerini Okuma (Visual Basic)
Sınıfı kullanılarak bir XML dosyasına daha önce yazılmış nesne verilerinin XmlSerializer nasıl okunduğunu gösterir.

Nasıl yapılır: Xml Dosyasına Nesne Verileri Yazma (Visual Basic)
sınıfını kullanarak bir sınıftan XML dosyasına nesnenin nasıl yazileceğini XmlSerializer gösterir.