Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Serileştirme, nesneyi depolamak veya belleğe, veritabanına veya dosyaya iletmek için bir 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 adı verilir.
Serileştirme Nasıl Çalışır?
Bu çizimde genel serileştirme işlemi gösterilmektedir.
Nesnesi 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 serileştirilir. Bu akıştan oluşturulmuş veri bir veritabanında, dosyada veya bellekte depolanabilir.
Serileştirmenin Kullanım Alanları
Serileştirme, geliştiricinin bir nesnenin durumunu kaydetmesine ve gerektiğinde yeniden oluşturmasına olanak sağlayarak 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, 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.
JSON serileştirme
Ad System.Text.Json alanı JavaScript Nesne Gösterimi (JSON) serileştirme ve seri durumdan çıkarma için sınıflar içerir. JSON, web'de veri paylaşımı için yaygın olarak kullanılan açık bir standarttır.
JSON serileştirmesi, bir nesnenin genel özelliklerini RFC 8259 JSON belirtimine uygun bir dize, bayt dizisi veya akış halinde serileştirir. Sınıfın bir örneğini seri hale getirme veya seri durumdan çıkarma şeklini JsonSerializer denetlemek için aşağıdaki yaklaşımlardan birini veya daha fazlasını kullanabilirsiniz:
- Bir JsonSerializerOptions nesne kullan.
- System.Text.Json.Serialization ad alanındaki öznitelikleri sınıflara veya özelliklere uygulayın
- Sözleşmeyi özelleştirme
- Özel dönüştürücüler uygulamak
İkili ve XML serileştirme
Ad alanı, System.Runtime.Serialization ikili ve XML serileştirme ve seri durum çözme için sınıflar içerir.
İkili serileştirmede, salt okunur üyeler de dahil olmak üzere tüm üyeler serileştirilir ve performans artırılır. 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.
Uyarı
ile BinaryFormatter ikili serileştirme tehlikeli olabilir. Daha fazla bilgi için BinaryFormatter güvenlik kılavuzuna ve BinaryFormatter geçiş kılavuzuna bakın.
Nesneyi Seri Hale Getirilebilir Hale Getirme
Bir nesneyi ikili veya XML serileştirmesi kullanarak serileştirmek için, seri hale getirilmeye yönelik nesneye, 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 gerekli sınıfları içerir.
Bu türün SerializableAttribute örneklerinin serileştirilebileceğini belirtmek için özniteliğini bir türe uygulayın. Serileştirmeye SerializationException çalışırsanız ancak türü özniteliğine SerializableAttribute sahip değilse bir özel durum oluşturulur.
Sınıfınızdaki bir alanın serileştirilebilir olmasını istemiyorsanız özniteliğini NonSerializedAttribute uygulayın. Seri hale getirilebilir türdeki 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, bunu seri durumdan çıkarılamaz hale getirmek isteyebilirsiniz.
Serileştirilmiş bir sınıf, işaretli SerializableAttributediğer sınıfların nesnelerine başvurular içeriyorsa, bu nesneler de seri hale getirilir.
İ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 üzere ikili kodlama kullanır.
XML Serileştirme
XML serileştirme, bir nesnenin ortak 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 türemiş sınıflarla sonuçlanır. System.Xml.Serialization XML'yi seri hale getirme ve seri durumdan çıkarma için gerekli sınıfları içerir.
Sınıfın bir örneğini serileştirme veya seriden çıkarma biçimini denetlemek için sınıflara ve sınıf üyelerine öznitelikler uygulayabilirsiniz.
Temel ve Özel Serileştirme
İkili ve XML serileştirme, temel ve özel olmak üzere iki şekilde gerçekleştirilebilir. Temel serileştirme, nesneyi otomatik olarak seri hale getirmek için .NET kullanır.
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ştirmeyi kullandığınızda, nesnelerin sürüm oluşturması sorun oluşturabilir ve bu durumda özel serileştirme tercih edilebilir. Temel serileştirme, serileştirme gerçekleştirmenin en kolay yoludur, ancak işlem üzerinde çok fazla denetim sağlamaz.
Özel serileştirmede, tam olarak hangi nesnelerin seri hale getirileceğini ve nasıl yapılacağını belirtebilirsiniz. Sınıf SerializableAttribute belirtilmelidir ve ISerializable arabirimi aracılığıyla uygulanmalı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ştirmesi, nesne grafını daha sonra nesne grafiğini kurtarmak için kullanılabilecek bir kaynak dosyaya dönüştürme işlemidir. Kaynak dosya kod, işaretleme ve hatta SQL tablo bilgileri içerebilir.
İlgili makaleler
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)
XmlSerializer sınıfını kullanarak, bir sınıftan XML dosyasına nesnenin nasıl yazılacağını gösterir.