internal ShapeFileDataReader(ShapeFileProvider source, FeatureQueryExpression query, FeatureQueryExecutionOptions options) { if (options != FeatureQueryExecutionOptions.FullFeature) { throw new ArgumentException("Only QueryExecutionOptions.All is supported.", "options"); } _shapeFile = source; _options = options; _schemaTable = source.GetSchemaTable(); _fieldCount = _schemaTable.Rows.Count; // TODO: now that we are accessing the geometry each time, perhaps a feature // query here would save a disk access _objectEnumerator = source.ExecuteOidQuery(query.SpatialPredicate).GetEnumerator(); }