Abbiamo davvero bisogno di SerializableAttribute?

1

Capisco che ne abbiamo bisogno per marcare una classe i cui oggetti possono essere serializzati, ma abbiamo assolutamente bisogno di questo perché la logica del retro funzioni? Potremmo semplicemente serializzare l'oggetto usando i metodi necessari. D'altra parte, se vogliamo impedire la serializzazione, avere questo attributo ha senso, in quel caso [NonSerialized()] diventa ridondante.

Considerando sintassi e semantica, qual è la necessità di questo attributo?

    
posta Shamim Hafiz 25.09.2018 - 22:09
fonte

1 risposta

1

do we strictly need this for behind the hood logic to work?

No. La maggior parte delle librerie di serializzazione (I.E. Newtonsoft.JSON, System.Xml.Serialization) non richiede l'attributo [Serializable] e presuppone invece che i campi pubblici e le proprietà debbano essere serializzati e quelli privati non dovrebbero con alcuni metodi per l'esclusione.

Come per BinaryFormatter, per impostazione predefinita serializza tutto, compresi i campi privati. Questo è un po 'più potenzialmente pericoloso, in quanto potrebbe esporre dati sensibili o non intenzionali se la classe non è stata pensata per essere serializzata.

Vedi link

    
risposta data 25.09.2018 - 23:40
fonte

Leggi altre domande sui tag