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