public virtual object Deserialize(byte[] bytes, Type type) { if (bytes == null || bytes.Length == 0) { return(null); } if (type == typeof(DataSet)) { return(DeserializeDataSet(bytes)); } if (type == typeof(DataTable)) { return(DeserializeDataTable(bytes)); } using (var ms = new MemoryStream(bytes)) { var xs = new XmlSerializer(type); var xtr = new NoDeclarationXmlTextReader(ms, Encoding.UTF8); xtr.Namespaces = false; var xrs = new XmlReaderSettings(); xrs.IgnoreComments = true; xrs.IgnoreProcessingInstructions = true; xrs.IgnoreWhitespace = true; var xr = XmlReader.Create(xtr, xrs); return(xs.Deserialize(xr)); } }
private DataSet DeserializeDataSet(byte[] bytes) { if (bytes == null || bytes.Length == 0) { return(null); } using (var ms = new MemoryStream(bytes)) { var xtr = new NoDeclarationXmlTextReader(ms, Encoding.UTF8); xtr.Namespaces = false; var xrs = new XmlReaderSettings(); xrs.IgnoreComments = true; xrs.IgnoreProcessingInstructions = true; xrs.IgnoreWhitespace = true; var xr = XmlReader.Create(xtr, xrs); var ds = new DataSet { EnforceConstraints = false }; ds.ReadXml(xr, XmlReadMode.ReadSchema); return(ds); } }