CA2238 : Implémentez les méthodes de sérialisation comme il se doit

Élément Valeur
ID de la règle CA2238
Category Microsoft.Usage
Modification avec rupture Cassant : si la méthode est visible en dehors de l’assembly.

Non cassant : si la méthode n’est pas visible en dehors de l’assembly.

Cause

Une méthode qui gère un événement de sérialisation n’a pas la signature, le type de retour ou la visibilité appropriée.

Description de la règle

Une méthode est désignée comme gestionnaire d’événements de sérialisation en appliquant l’un des attributs d’événement de sérialisation suivants :

Comment corriger les violations

Pour corriger une violation de cette règle, corrigez la signature, le type de retour ou la visibilité du gestionnaire d’événements de sérialisation.

Quand supprimer les avertissements

Ne supprimez aucun avertissement de cette règle.

Exemple

L’exemple suivant montre les gestionnaires d’événements de sérialisation déclarés correctement.

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) {}
   }
}

CA2236 : Appelez les méthodes de la classe de base sur les types ISerializable

CA2240 : Implémentez ISerializable comme il se doit

CA2229 : Implémentez des constructeurs de sérialisation

CA2235 : Marquez tous les champs non sérialisés

CA2237 : Marquer les types ISerializable avec SerializableAttribute

CA2239 : Spécifiez des méthodes de désérialisation pour les champs facultatifs

CA2120 : Sécurisez les constructeurs de sérialisation