Domanda

Dopo aver lottato con un gruppo di eccezioni non gestite fanno quando si cerca di serializzare i miei classi e sottoclassi, ho finalmente capito quello che il mio problema era stato: [Serializable] non è ereditata dalle sottoclassi se applicato a una classe di base. Sono ancora molto confusa su C # Attributi in generale, ma capisco che quando si crea un attributo personalizzato, il programmatore è in grado di consentire l'ereditarietà automatica del attributo.

Esiste un modo per ignorare l'eredità di [Serializable]? C'è qualche motivo per cui bene non è stato fatto fin dall'inizio e / o sarebbe una cattiva idea di fare questo in primo luogo? Vorrei tutte le sottoclassi di detto classe base siano serializzabile, così sembra solo poco elegante di dover aggiungere l'attributo a tutte le nuove sottoclassi faccio.

Grazie!

È stato utile?

Soluzione

Non c'è assolutamente un motivo buono non è stato fatto, in primo luogo -. Solo perché una classe di base è serializzabile non significa che una classe derivata è naturalmente

Heck, object è serializzabile - se serializzabilità furono ereditati, ciò significherebbe ogni classe in .NET sarebbe serializzabile:)

Non puoi "override" che sia - è necessario specificare su ogni classe. Penso che sia una buona cosa, in realtà - quando si aggiunge l'attributo, è necessario eseguire un controllo mentale sulla classe e verificare che in realtà non ha senso per serializzare esso

.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top