CA2238: Implementare correttamente i metodi di serializzazione
Articolo | Valore |
---|---|
ID regola | CA2238 |
Category | Microsoft.Usage |
Modifica | Interruzione: se il metodo è visibile all'esterno dell'assembly. Non di rilievo: se il metodo non è visibile all'esterno dell'assembly. |
Causa
Un metodo che gestisce un evento di serializzazione non dispone della visibilità, del tipo restituito o della firma corretta.
Descrizione regola
Un metodo è designato un gestore eventi di serializzazione applicando uno degli attributi dell'evento di serializzazione seguenti:
System.Runtime.Serialization.OnDeserializedAttribute
I gestori eventi di serializzazione accettano un singolo parametro di tipo System.Runtime.Serialization.StreamingContext, restituiscono
void
e hannoprivate
visibilità.
Come correggere le violazioni
Per correggere una violazione di questa regola, correggere la firma, il tipo restituito o la visibilità del gestore eventi di serializzazione.
Quando eliminare gli avvisi
Non escludere un avviso da questa regola.
Esempio
L'esempio seguente mostra i gestori eventi di serializzazione dichiarati correttamente.
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) {}
}
}
Regole correlate
CA2236: Chiamare metodi della classe base su tipi ISerializable
CA2240: Implementare ISerializable in modo corretto
CA2229: Implementare costruttori di serializzazione
CA2235: Contrassegnare tutti i campi non serializzabili
CA2237: Contrassegnare i tipi ISerializable con SerializableAttribute
CA2239: Specificare metodi di deserializzazione per i campi facoltativi
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per