public IDataReader AsDataReader() { if (_xElements == null) { ChoXmlRecordReader rr = new ChoXmlRecordReader(typeof(T), Configuration); //if (_textReader != null) // _xmlReader = XmlReader.Create(_textReader, new XmlReaderSettings() { DtdProcessing = DtdProcessing.Ignore, XmlResolver = null }, new XmlParserContext(null, Configuration.NamespaceManager, null, XmlSpace.None)); rr.Reader = this; rr.TraceSwitch = TraceSwitch; rr.RowsLoaded += NotifyRowsLoaded; rr.MembersDiscovered += MembersDiscovered; var dr = new ChoEnumerableDataReader(rr.AsEnumerable(_xmlReader), rr); return(dr); } else { ChoXmlRecordReader rr = new ChoXmlRecordReader(typeof(T), Configuration); rr.Reader = this; rr.TraceSwitch = TraceSwitch; rr.RowsLoaded += NotifyRowsLoaded; rr.MembersDiscovered += MembersDiscovered; var dr = new ChoEnumerableDataReader(rr.AsEnumerable(_xElements), rr); return(dr); } }
//internal static IEnumerator<object> LoadText(Type recType, string inputText, ChoXmlRecordConfiguration configuration, Encoding encoding, int bufferSize, TraceSwitch traceSwitch = null) //{ // ChoXmlRecordReader rr = new ChoXmlRecordReader(recType, configuration); // rr.TraceSwitch = traceSwitch == null ? ChoETLFramework.TraceSwitchOff : traceSwitch; // return rr.AsEnumerable(new StreamReader(inputText.ToStream(), encoding, false, bufferSize)).GetEnumerator(); //} public IEnumerator <T> GetEnumerator() { if (_xElements == null) { ChoXmlRecordReader rr = new ChoXmlRecordReader(typeof(T), Configuration); //if (_textReader != null) // _xmlReader = XmlReader.Create(_textReader, new XmlReaderSettings() { DtdProcessing = DtdProcessing.Ignore, XmlResolver = null }, new XmlParserContext(null, Configuration.NamespaceManager, null, XmlSpace.None)); rr.Reader = this; rr.TraceSwitch = TraceSwitch; rr.RowsLoaded += NotifyRowsLoaded; rr.MembersDiscovered += MembersDiscovered; var e = rr.AsEnumerable(_xmlReader).GetEnumerator(); return(ChoEnumeratorWrapper.BuildEnumerable <T>(() => e.MoveNext(), () => (T)ChoConvert.ChangeType <ChoRecordFieldAttribute>(e.Current, typeof(T))).GetEnumerator()); } else { ChoXmlRecordReader rr = new ChoXmlRecordReader(typeof(T), Configuration); rr.Reader = this; rr.TraceSwitch = TraceSwitch; rr.RowsLoaded += NotifyRowsLoaded; rr.MembersDiscovered += MembersDiscovered; var e = rr.AsEnumerable(_xElements).GetEnumerator(); return(ChoEnumeratorWrapper.BuildEnumerable <T>(() => e.MoveNext(), () => (T)ChoConvert.ChangeType <ChoRecordFieldAttribute>(e.Current, typeof(T))).GetEnumerator()); } }
public IDataReader AsDataReader() { if (_xElements == null) { ChoXmlRecordReader rr = new ChoXmlRecordReader(typeof(T), Configuration); if (_textReader != null) { _xmlReader = XmlReader.Create(_textReader, new XmlReaderSettings(), new XmlParserContext(null, Configuration.NamespaceManager, null, XmlSpace.None)); } rr.Reader = this; rr.TraceSwitch = TraceSwitch; rr.RowsLoaded += NotifyRowsLoaded; var dr = new ChoEnumerableDataReader(rr.AsEnumerable(_xmlReader), rr); return(dr); } else { ChoXmlRecordReader rr = new ChoXmlRecordReader(typeof(T), Configuration); rr.Reader = this; rr.TraceSwitch = TraceSwitch; rr.RowsLoaded += NotifyRowsLoaded; var dr = new ChoEnumerableDataReader(rr.AsEnumerable(_xElements), rr); return(dr); } }
private IDataReader AsDataReader(Action <IDictionary <string, Type> > membersDiscovered) { if (_xElements == null) { InitXml(); ChoXmlRecordReader rr = new ChoXmlRecordReader(typeof(T), Configuration); //if (_textReader != null) // _xmlReader = XmlReader.Create(_textReader, new XmlReaderSettings() { DtdProcessing = DtdProcessing.Ignore, XmlResolver = null }, new XmlParserContext(null, Configuration.NamespaceManager, null, XmlSpace.None)); rr.Reader = this; rr.TraceSwitch = TraceSwitch; rr.RowsLoaded += NotifyRowsLoaded; rr.MembersDiscovered += membersDiscovered != null ? (o, e) => membersDiscovered(e.Value) : MembersDiscovered; var dr = new ChoEnumerableDataReader(rr.AsEnumerable(_xmlReader), rr); return(dr); } else { ChoXmlRecordReader rr = new ChoXmlRecordReader(typeof(T), Configuration); rr.Reader = this; rr.TraceSwitch = TraceSwitch; rr.RowsLoaded += NotifyRowsLoaded; rr.MembersDiscovered += membersDiscovered != null ? (o, e) => membersDiscovered(e.Value) : MembersDiscovered; var dr = new ChoEnumerableDataReader(rr.AsEnumerable(_xElements), rr); return(dr); } }
internal static IEnumerator <object> LoadText(Type recType, string inputText, ChoXmlRecordConfiguration configuration, Encoding encoding, int bufferSize) { ChoXmlRecordReader rr = new ChoXmlRecordReader(recType, configuration); rr.TraceSwitch = ChoETLFramework.TraceSwitchOff; return(rr.AsEnumerable(new StreamReader(inputText.ToStream(), encoding, false, bufferSize)).GetEnumerator()); }