public override object ReadObject(System.Xml.XmlDictionaryReader reader, bool verifyObjectName) { if (reader.GetAttribute("nil") == "true") { return(null); } reader.ReadStartElement(PROTO_ELEMENT); try { using (MemoryStream ms = new MemoryStream(reader.ReadContentAsBase64())) { T val = Serializer.Deserialize <T>(ms); return(val); } } finally { reader.ReadEndElement(); } }
/// <summary> /// Reads the body of an object /// </summary> public override object ReadObject(System.Xml.XmlDictionaryReader reader, bool verifyObjectName) { if (reader.GetAttribute("nil") == "true") { return(null); } reader.ReadStartElement(PROTO_ELEMENT); try { using (MemoryStream ms = new MemoryStream(reader.ReadContentAsBase64())) { using (ProtoReader protoReader = new ProtoReader(ms, model, null)) { return(model.Deserialize(key, null, protoReader)); } } } finally { reader.ReadEndElement(); } }