2009-03-26 2 views
5

ho qualche codice di qualcosa di simile:Come impostare StreamingContext per DataContractSerializer?

[DataContract] 
class Foo { 
    [OnSerializing] 
    private void BeforeSerialize(StreamingContext ctx) 
    { 
     ((MtType)ctx.Context).DoStuff() 
    } 

    ... 
} 

var reader = new XmlTextReader(filename); 
var serializer = new DataContractSerializer(typeof(Type)); 
Type type = (Type)serializer.ReadObject(reader); 

e ho bisogno di fornire la struttura StreamingContext. Ho trovato several references che questo può essere fatto per NetDataContractSerializer ma nessuno per DataContractSerializer.

  • C'è un modo per farlo funzionare?
  • Sto sbagliando?

risposta

0

L'utilizzo di IDataContractSurrogate consente di eseguire serializzazioni e deserializzazioni JSON personalizzate in base al tipo o per oggetto.

Vedere IDataContractSurrogate Methods per i documenti API e vedere DataContract Surrogate per l'esempio.

Inoltre, per leggere e interpretare JSON, si inizierebbe con JsonReaderWriterFactory, non una factory XML. Vedi JsonReaderWriterFactory Class per vedere cosa intendo.

Spero che questo aiuti!