Aracılığıyla paylaş


CA2238: Serileştirme yöntemlerini doğru uygulama

TürAdı

SerileştirmeMetodlarınıDoğruUygulayın

CheckId

CA2238

Kategori

Microsoft.Usage

Bozan Değişiklik

Yöntem derlemenin dışında görünür ise -Yeni.

Yöntem derlemenin dışından görünmüyorsa ise -Yeni Değil.

Sebep

Seri hale getirme olayı tanıtan bir yöntem tür, doğru görünürlüğe, dönüş türüne ve ya imzaya sahip değil.

Kural Tanımı

Bir Metod, aşağıdaki serileştirme olay niteliklerinden biri uygulanarak serileştirme olay işleyicisi olarak atanır:

Serileştirme olay işleyicileri StreamingContext türünde bir tek parametre alır, void 'ı döndürür ve private görünürlüğü vardır.

İhlallerin Düzeltilmesi

Bu kuralın ihlalini düzeltmek için, serileştirme olay işleyicisinin imzasını, dönüş türünü veya görünürlüğünü düzeltin.

Uyarılar Ne Zaman Bastırılmalı

Bu kuraldan bir uyarı gizlemeyin.

Örnek

Aşağıdaki örnek doğru bildirilen serileştirme olay işleyicilerini gösterir.

Imports System
Imports System.Runtime.Serialization

Namespace UsageLibrary

   <SerializableAttribute> _ 
   Public Class SerializationEventHandlers

      <OnSerializingAttribute> _ 
      Private Sub OnSerializing(context As StreamingContext) 
      End Sub

      <OnSerializedAttribute> _ 
      Private Sub OnSerialized(context As StreamingContext) 
      End Sub

      <OnDeserializingAttribute> _ 
      Private Sub OnDeserializing(context As StreamingContext)
      End Sub

      <OnDeserializedAttribute> _ 
      Private Sub OnDeserialized(context As StreamingContext)
      End Sub 

   End Class 

End Namespace
using System;
using System.Runtime.Serialization;

namespace UsageLibrary
{
   [SerializableAttribute]
   public class SerializationEventHandlers
   {
      [OnSerializingAttribute]
      void OnSerializing(StreamingContext context) {}

      [OnSerializedAttribute]
      void OnSerialized(StreamingContext context) {}

      [OnDeserializingAttribute]
      void OnDeserializing(StreamingContext context) {}

      [OnDeserializedAttribute]
      void OnDeserialized(StreamingContext context) {}
   }
}

İlgili Kurallar

CA2236: ISerializable türler üzerinde taban sınıf yöntemlerini çağırın

CA2240: ISerializable'ı doğru uygulayın

CA2229: Serileştirme oluşturucularını uygulayın

CA2235: Tüm serileştirilebilir olmayan alanları işaretleyin

CA2237: ISerializable türleri SerializableAttribute ile işaretleyin

CA2239: İsteğe bağlı yöntemler için serileştirme kaldırma yöntemler sağlayın

CA2120: Serileştirme oluşturucularının güvenliğini sağlayın