public List <ResultFeatureClassRow> ReadData(string a_WhereClause, bool a_ReadShape)
        {
            var a_Results = new List <ResultFeatureClassRow>();

            if (ResultsFeatureClass == null)
            {
                throw new NullReferenceException("Results feature class not open");
            }
            IQueryFilter   a_QueryFilter   = string.IsNullOrEmpty(a_WhereClause) ? null : new QueryFilterClass();
            IFeatureCursor a_FeatureCursor = null;

            try
            {
                IFeature a_Feature;
                a_FeatureCursor = ResultsFeatureClass.Search(a_QueryFilter, true);
                while ((a_Feature = a_FeatureCursor.NextFeature()) != null)
                {
                    var a_Row = new ResultFeatureClassRow();
                    a_Row.Read(a_Feature, a_ReadShape);
                    a_Results.Add(a_Row);
                }
            }
            finally
            {
                if (a_FeatureCursor != null)
                {
                    Marshal.ReleaseComObject(a_FeatureCursor);
                }
                if (a_QueryFilter != null)
                {
                    Marshal.ReleaseComObject(a_QueryFilter);
                }
            }
            return(a_Results);
        }
 public WriteSession(IFeatureClass a_FeatureClass, bool a_OverwriteResults)
 {
     m_FeatureClass     = a_FeatureClass;
     m_OverwriteResults = a_OverwriteResults;
     m_ResultRow        = new ResultFeatureClassRow();
 }