527 messaggi dal 18 dicembre 2012
Ciao a tutti

Devo serializzare in xml una classe.

Ho trovato come escludere dalla serializzazione una proprietà che verrà considerata come attributo nell'xml.

[XmlAttributeAttribute()]
public string parent {
get;

set;
}

[XmlIgnoreAttribute()]
public bool parentSpecified {
get;

set;
}

Ma se voglio escludere dalla serializzazione una proprietà che sarà un nodo e una serie di nodi nell'xml?

public string Description {
get;

set;
}


Grazie mille
Ciao,

direi sempre [XmlIgnore]
https://msdn.microsoft.com/it-it/library/system.xml.serialization.xmlattributes.xmlignore(v=vs.110).aspx

Ormai programmano tutti... ma la professionalità appartiene a pochi
527 messaggi dal 18 dicembre 2012
Ciao
Quello che voglio è una cosa simile all'esempio che ho inserito nel post. Nell'esempio per visualizzare 'parent' assegno a 'parentSpecified' il valore false per non visualizzare assegno true
Non lo potevi fare direttamente su Parent?
dovresti postare il codice di serializzazione.

Ormai programmano tutti... ma la professionalità appartiene a pochi
527 messaggi dal 18 dicembre 2012
Scusami, ma non ho capito :-(
La serializzazione dovrebbe essere fatta in automatico da WCF se non sbaglio. E' la prima volta che utilizzo WCF.

L'esempio che ho inserito è stato creato in automatico da xsd.exe
Nel creare la classe ha inserito anche parentSpecified e per controllare se l'xml creato durante la serializzazione ho usato questo codice:
public static string GetXMLFromObject(object o)
    {
        StringWriter sw = new StringWriter();
        XmlTextWriter tw = null;
        try
        {
            XmlSerializer serializer = new XmlSerializer(o.GetType());
            tw = new XmlTextWriter(sw);
            serializer.Serialize(tw, o);
        }
        catch (Exception ex)
        {
            //Handle Exception Code
        }
        finally
        {
            sw.Close();
            if (tw != null)
            {
                tw.Close();
            }
        }
        return sw.ToString();
    }


Ora ho la necessità di dover includere o meno nella serializzazione alcuni campi
Beh la serializzazione xml è indipendente dal fatto di usare WCF o meno.
Mi interessava sapere avevi una logica per parentSpecified.

Tutti i campi (o proprietà) pubblici vengono serializzati a meno che non sia definito XmlIgnore.
Dovrebbe essere sufficiente scrivere

[XmlIgnore]
[XmlAttribute]
public string parent {
get;

set;
} 

[XmlIgnore]
public string Description {
get;

set;
}


Che xml ottieni?
Modificato da manuel0081 il 01 giugno 2017 17.08 -

Ormai programmano tutti... ma la professionalità appartiene a pochi

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.