private IFeatureClass method_1(string string_0, int int_0, IntPtr intptr_0, IFeatureWorkspace ifeatureWorkspace_0, out bool bool_0) { IEnumFieldError enumFieldError; IFields field; IFeatureClass featureClass; bool_0 = false; try { IFeatureClass featureClass1 = null; string fileNameWithoutExtension = System.IO.Path.GetFileNameWithoutExtension(string_0); IFeatureClassDescription featureClassDescriptionClass = new FeatureClassDescription() as IFeatureClassDescription; string shapeFieldName = featureClassDescriptionClass.ShapeFieldName; IFields requiredFields = (featureClassDescriptionClass as IObjectClassDescription).RequiredFields; this.AddTabField(requiredFields as IFieldsEdit, intptr_0); this.AddTabField(int_0, requiredFields as IFieldsEdit); IFields field1 = requiredFields; IFieldChecker fieldCheckerClass = new FieldChecker() { ValidateWorkspace = ifeatureWorkspace_0 as IWorkspace }; fieldCheckerClass.Validate(field1, out enumFieldError, out field); IFieldEdit fieldEdit = field.Field[field.FindField(shapeFieldName)] as IFieldEdit; IGeometryDefEdit geometryDef = fieldEdit.GeometryDef as IGeometryDefEdit; if (this.ispatialReference_0 == null) { string str = TabRead._mitab_c_get_coordsys_xml(intptr_0); if (str == null) { this.ispatialReference_0 = geometryDef.SpatialReference; } else if (str.Length <= 0) { this.ispatialReference_0 = geometryDef.SpatialReference; } else { string str1 = string.Concat(System.IO.Path.GetTempPath(), "\\temp.prj"); StreamWriter streamWriter = new StreamWriter(str1); try { streamWriter.Write(str); } finally { if (streamWriter != null) { ((IDisposable)streamWriter).Dispose(); } } try { this.ispatialReference_0 = (new SpatialReferenceEnvironment()).CreateESRISpatialReferenceFromPRJFile(str1); } catch { this.ispatialReference_0 = geometryDef.SpatialReference; } try { File.Delete(str1); } catch { } } double num = 0; double num1 = 0; double num2 = 0; double num3 = 0; TabRead._mitab_c_get_mif_bounds(intptr_0, ref num, ref num1, ref num2, ref num3); SpatialReferenctOperator.ChangeCoordinateSystem(ifeatureWorkspace_0 as IGeodatabaseRelease, this.ispatialReference_0, false); num = num - 10; num1 = num1 + 10; num2 = num2 - 10; num3 = num3 + 10; this.ispatialReference_0.SetDomain(num, num1, num2, num3); } geometryDef.SpatialReference_2 = this.ispatialReference_0; TabRead._mitab_c_get_feature_count_bytype(intptr_0, int_0); switch (int_0) { case 1: case 2: case 3: { fileNameWithoutExtension = string.Concat(fileNameWithoutExtension, "_Point"); fileNameWithoutExtension = this.method_0(ifeatureWorkspace_0 as IWorkspace, fileNameWithoutExtension); geometryDef.GeometryType_2 = esriGeometryType.esriGeometryPoint; fieldEdit.GeometryDef_2 = geometryDef; featureClass1 = ifeatureWorkspace_0.CreateFeatureClass(fileNameWithoutExtension, field, null, null, esriFeatureType.esriFTSimple, shapeFieldName, ""); break; } case 4: { fileNameWithoutExtension = string.Concat(fileNameWithoutExtension, "_Anno_Point"); fileNameWithoutExtension = this.method_0(ifeatureWorkspace_0 as IWorkspace, fileNameWithoutExtension); geometryDef.GeometryType_2 = esriGeometryType.esriGeometryPoint; fieldEdit.GeometryDef_2 = geometryDef; featureClass1 = ifeatureWorkspace_0.CreateFeatureClass(fileNameWithoutExtension, field, null, null, esriFeatureType.esriFTSimple, shapeFieldName, ""); break; } case 5: case 6: { fileNameWithoutExtension = string.Concat(fileNameWithoutExtension, "_Line"); fileNameWithoutExtension = this.method_0(ifeatureWorkspace_0 as IWorkspace, fileNameWithoutExtension); geometryDef.GeometryType_2 = esriGeometryType.esriGeometryPolyline; fieldEdit.GeometryDef_2 = geometryDef; featureClass1 = ifeatureWorkspace_0.CreateFeatureClass(fileNameWithoutExtension, field, null, null, esriFeatureType.esriFTSimple, shapeFieldName, ""); break; } case 7: { fileNameWithoutExtension = string.Concat(fileNameWithoutExtension, "_Polygon"); fileNameWithoutExtension = this.method_0(ifeatureWorkspace_0 as IWorkspace, fileNameWithoutExtension); geometryDef.GeometryType_2 = esriGeometryType.esriGeometryPolygon; fieldEdit.GeometryDef_2 = geometryDef; featureClass1 = ifeatureWorkspace_0.CreateFeatureClass(fileNameWithoutExtension, field, null, null, esriFeatureType.esriFTSimple, shapeFieldName, ""); break; } case 8: case 9: { featureClass = null; return(featureClass); } case 10: { fileNameWithoutExtension = string.Concat(fileNameWithoutExtension, "_MultiPoint"); fileNameWithoutExtension = this.method_0(ifeatureWorkspace_0 as IWorkspace, fileNameWithoutExtension); geometryDef.GeometryType_2 = esriGeometryType.esriGeometryMultipoint; fieldEdit.GeometryDef_2 = geometryDef; featureClass1 = ifeatureWorkspace_0.CreateFeatureClass(fileNameWithoutExtension, field, null, null, esriFeatureType.esriFTSimple, shapeFieldName, ""); break; } default: { featureClass = null; return(featureClass); } } featureClass = featureClass1; return(featureClass); } catch (Exception exception) { Logger.Current.Error("", exception, ""); bool_0 = true; } featureClass = null; return(featureClass); }