Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

.NET TIP - Implementare l'interfaccia IXmlSerializable

Ottenere una Hash Table serializzabile
Ottenere una Hash Table serializzabile
Link copiato negli appunti

La classe HashTable ed in generale tutte quelle che implementano l'interfaccia IDictionary, non può essere serializzata via XmlSerializer. Per poter superare questo ostacolo è necessario ricorrere ad uno stratagemma: definire un processo personalizzato di serializzazione tramite l'interfaccia IXmlSerializable. Questa definisce 3 metodi:


public interface IXmlSerializable

{

  void ReadXml(XmlReader reader);

  void WriteXml(XmlWriter writer);

  XmlSchema GetSchema();

}

Quando viene avviato il processo di serializzazione l'XmlSerializer chiama il metodo WriteXml(). Vicecersa, durante la deserializzazione, chiama il metodo ReadXml(). Il metodo GetSchema() viene usato per identificare lo schema XSD dell'oggetto serializzato ed è chiamato solo in casi particolari. L'utilizzo degli attributi di serializzazione ha poco effetto con IXmlSerializable, in quanto questi servono per gestire la serializzazione automatica delle classi.

Avere HashTable serializzabili può essere utile in diversi contesti, ad esempio in un Web service, in Biztalk 2004 oppure in tutti quei progetti dove l'uso della serializzazione XML di oggetti viene fatto in modo massiccio. Per capire meglio l'utilizzo di questa interfaccia allego un progetto C# nel quale ho creato una classe CustomHashTable che implementa IXmlSerializable. CustomHashTable utilizza internamente un dizionario che accetta coppie chiave-valore di tipo stringa, l'esempio è liberamente personalizzabile secondo le proprie esigenze.

Ti consigliamo anche