2009-03-26 22 views
5

Tôi có một số mã như thế này:Cách đặt StreamingContext cho 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); 

và tôi cần phải cung cấp cấu trúc StreamingContext. Tôi đã tìm thấy several references rằng điều này có thể được thực hiện cho NetDataContractSerializer nhưng không có gì cho DataContractSerializer.

  • Có cách nào để thực hiện công việc này không?
  • Tôi chỉ làm điều này sai?

Trả lời

0

Việc sử dụng IDataContractSurrogate cho phép bạn thực hiện tuần tự hóa JSON và deserialization tùy chỉnh trên cơ sở mỗi loại hoặc mỗi đối tượng.

Xem IDataContractSurrogate Methods cho tài liệu API và xem DataContract Surrogate cho mẫu.

Ngoài ra, để đọc và giải thích JSON, bạn sẽ bắt đầu với JsonReaderWriterFactory, không phải nhà máy XML. Xem JsonReaderWriterFactory Class để xem ý tôi là gì.

Hy vọng điều này sẽ hữu ích!

Các vấn đề liên quan