示例#1
0
 private IDataReader AsDataReader(Action <IDictionary <string, Type> > membersDiscovered)
 {
     if (_jObjects == null)
     {
         ChoJSONRecordReader rr = new ChoJSONRecordReader(typeof(T), Configuration);
         if (_textReader != null)
         {
             _JSONReader = new JsonTextReader(_textReader);
         }
         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(_JSONReader), rr);
         return(dr);
     }
     else
     {
         ChoJSONRecordReader rr = new ChoJSONRecordReader(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(_jObjects), rr);
         return(dr);
     }
 }
示例#2
0
 public IDataReader AsDataReader()
 {
     if (_jObjects == null)
     {
         ChoJSONRecordReader rr = new ChoJSONRecordReader(typeof(T), Configuration);
         if (_textReader != null)
         {
             _JSONReader = new JsonTextReader(_textReader);
         }
         rr.Reader      = this;
         rr.TraceSwitch = TraceSwitch;
         rr.RowsLoaded += NotifyRowsLoaded;
         var dr = new ChoEnumerableDataReader(rr.AsEnumerable(_JSONReader), rr);
         return(dr);
     }
     else
     {
         ChoJSONRecordReader rr = new ChoJSONRecordReader(typeof(T), Configuration);
         rr.Reader      = this;
         rr.TraceSwitch = TraceSwitch;
         rr.RowsLoaded += NotifyRowsLoaded;
         var dr = new ChoEnumerableDataReader(rr.AsEnumerable(_jObjects), rr);
         return(dr);
     }
 }
示例#3
0
        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);
            }
        }
示例#4
0
        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);
            }
        }
示例#5
0
        public static IDataReader AsDataReader(this IEnumerable collection)
        {
            var e  = new ChoStdDeferedObjectMemberDiscoverer(collection);
            var dr = new ChoEnumerableDataReader(e.AsEnumerable(), e);

            return(dr);
        }
示例#6
0
        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);
            }
        }
示例#7
0
        public IDataReader AsDataReader()
        {
            ChoFixedLengthRecordReader reader = new ChoFixedLengthRecordReader(typeof(T), Configuration);

            reader.LoadSchema(_streamReader);

            var dr = new ChoEnumerableDataReader(GetEnumerator().ToEnumerable(), Configuration.FixedLengthRecordFieldConfigurations.Select(i => new KeyValuePair <string, Type>(i.Name, i.FieldType)).ToArray());

            return(dr);
        }
示例#8
0
        public IDataReader AsDataReader()
        {
            ChoFixedLengthRecordReader rr = new ChoFixedLengthRecordReader(typeof(T), Configuration);

            rr.Reader      = this;
            rr.TraceSwitch = TraceSwitch;
            rr.RowsLoaded += NotifyRowsLoaded;
            var dr = new ChoEnumerableDataReader(rr.AsEnumerable(_textReader), rr);

            return(dr);
        }
示例#9
0
        private IDataReader AsDataReader(Action <IDictionary <string, Type> > membersDiscovered)
        {
            ChoCSVRecordReader rr = new ChoCSVRecordReader(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(_lines != null ? rr.AsEnumerable(_lines) : rr.AsEnumerable(_textReader), rr);

            return(dr);
        }
示例#10
0
        public IDataReader AsDataReader()
        {
            ChoCSVRecordReader rr = new ChoCSVRecordReader(typeof(T), Configuration);

            rr.Reader             = this;
            rr.TraceSwitch        = TraceSwitch;
            rr.RowsLoaded        += NotifyRowsLoaded;
            rr.MembersDiscovered += MembersDiscovered;
            var dr = new ChoEnumerableDataReader(_lines != null ? rr.AsEnumerable(_lines) : rr.AsEnumerable(_textReader), rr);

            return(dr);
        }
示例#11
0
        public static IDataReader AsDataReader(this IEnumerable collection, Action <IDictionary <string, Type> > membersDiscovered = null)
        {
            var e = new ChoStdDeferedObjectMemberDiscoverer(collection);

            if (membersDiscovered != null)
            {
                e.MembersDiscovered += (o, e1) =>
                {
                    membersDiscovered(e1.Value);
                };
            }
            var dr = new ChoEnumerableDataReader(e.AsEnumerable(), e);

            return(dr);
        }
示例#12
0
        public static IDataReader AsDataReader(this IEnumerable collection,
                                               Action <IDictionary <string, Type> > membersDiscovered = null, string[] selectedFields = null,
                                               string[] excludeFields = null)
        {
            var e = new ChoStdDeferedObjectMemberDiscoverer(collection);

            if (membersDiscovered != null)
            {
                e.MembersDiscovered += (o, e1) =>
                {
                    membersDiscovered(e1.Value);
                };
            }
            else
            {
                e.MembersDiscovered += (o, e1) =>
                {
                    if (excludeFields != null)
                    {
                        foreach (var ef in excludeFields)
                        {
                            if (e1.Value.ContainsKey(ef))
                            {
                                e1.Value.Remove(ef);
                            }
                        }
                    }
                    else if (selectedFields != null)
                    {
                        foreach (var sf in e1.Value.Keys.Except(selectedFields).ToArray())
                        {
                            e1.Value.Remove(sf);
                        }
                    }
                };
            }
            var dr = new ChoEnumerableDataReader(e.AsEnumerable(), e);

            return(dr);
        }
示例#13
0
        public IDataReader AsDataReader()
        {
            var dr = new ChoEnumerableDataReader(GetEnumerator().ToEnumerable(), Configuration.RecordFieldConfigurations.Select(i => new KeyValuePair <string, Type>(i.Name, i.FieldType)).ToArray());

            return(dr);
        }