private static T DeserializeFromXmlReaderInternal <T>(XmlReader xmlReader, Action <Exception> failureAction) where T : class { XmlSerializer serializer = new XmlSerializer(typeof(T)); T result = default(T); try { XMLSerializableBase.PerformSerializationOperation(delegate { result = (serializer.Deserialize(xmlReader) as T); }); } catch (InvalidOperationException obj) { failureAction(obj); } catch (FormatException obj2) { failureAction(obj2); } XMLSerializableBase xmlserializableBase = result as XMLSerializableBase; if (xmlserializableBase != null) { xmlserializableBase.OnDeserialized(); } return(result); }
private static void SerializeToXmlWriterInternal(object objectToSerialize, XmlWriter writer) { XmlSerializer serializer = new XmlSerializer(objectToSerialize.GetType()); XmlSerializerNamespaces ns = new XmlSerializerNamespaces(); ns.Add(string.Empty, string.Empty); XMLSerializableBase.PerformSerializationOperation(delegate { serializer.Serialize(writer, objectToSerialize, ns); writer.Flush(); }); }