2012-04-10 9 views
0

Ich habe eine Klasse:überspringen Datamember über DataContractSerializer

[DataContract] 
public class Result 
{ 
    [DataMember] public String Log {get; set;} 
    [DataMember] public String Data {get; set;} 
} 

ich diese Klasse über WCF senden und es funktioniert gut. Aber ich möchte diese Klasse nach dem Empfang in einer XML-Datei speichern. Ich versuche zu schreiben:

var serializer = new DataContractSerializer(typeof (T),null,int.MaxValue, 
    false,true,null,new SharedTypeXmlResolver()); 
var settings = new XmlWriterSettings { Indent = true }; 
using (var backing = new StringWriter(CultureInfo.InvariantCulture)) 
{ 
    using (var writer = XmlWriter.Create(backing, settings)) 
    { 
     serializer.WriteObject(writer, result);           
    } 
    return backing.ToString(); 
} 

Aber ich will „Log“ Eigenschaft auf eine XML-Datei speichern und nicht wollen, „Data“ Eigenschaft speichern. Wie mache ich das? Danke!

+1

Blick in XmlIgnore Attribut – Dimitri

Antwort

0

XmlIgnore funktioniert nicht mit DataContract Serialisierung. Dieser Vertrag ist Opt-In, im Gegensatz zu Serializable Opt-Out.

0

Make Daten optional:

[DataMember(EmitDefaultValue = false)] public String Data {get; set;} 

Dann Daten löschen:

result.Data = null;