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 :
System.Runtime.Serialization.OnDeserializedAttribute
Les gestionnaires d’événements de sérialisation prennent un paramètre unique de type System.Runtime.Serialization.StreamingContext, de retour
void
et ont une visibilitéprivate
.
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) {}
}
}
Règles associées
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
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour