/ / usando l'attributo Serializable con la classe base solo nella dichiarazione di classe - c #, wpf, ereditarietà, serializzazione xml, serializzazione dell'oggetto

utilizzando l'attributo Serializable con la classe base solo nella dichiarazione di classe - c #, wpf, ereditarietà, serializzazione xml, serializzazione dell'oggetto

Ho una classe che utilizza serializzatore di oggetti per serializzare le proprietà. La classe è derivata da un'altra classe come segue

[Serializable]
public class TargetInfo:
PropertyHandler

Quando chiamo il metodo serialize, serializzatoreprova a serializzare anche la classe PropertyHandler e lancia diverse eccezioni poiché la classe PropertyHandler non è conforme alle regole di serializzazione. Come posso evitare la serializzazione di PropertyHandler e serializzare solo TargetInfo?

Qualsiasi aiuto / idee sarà molto apprezzato.

Grazie

risposte:

2 per risposta № 1

Hai un certo numero di opzioni ... se vuoi serializzare una classe che estende una classe base, allora quella classe base dovere anche essere contrassegnato con il Serializable attributo. È tuttavia possibile aggiungere ilNonSerialized attributo ai membri della classe base che fai non voglio essere serializzato.

Se questo è ancora non è giusto per te, puoi provare alcune serializzazioni personalizzate implementando il ISerializable interfaccia, fornendo più controllo su esattamente ciò che è serializzato. Si prega di dare un'occhiata al Serializzazione degli oggetti in .NET Framework pagina su MSDN per ulteriori informazioni su questo argomento.