コード例 #1
0
 private void method_10(IFeatureBuffer ifeatureBuffer_0, ICoFeature icoFeature_0)
 {
     foreach (ICoField field in icoFeature_0.Layer.Fields)
     {
         ICoField field2 = field;
         if (this.coLayerMapper_0 != null)
         {
             field2 = this.coLayerMapper_0.FindDestField(field);
         }
         if (field2 == null)
         {
             field2 = field;
         }
         int index = ifeatureBuffer_0.Fields.FindField(field2.Name);
         if ((index > -1) && (index < ifeatureBuffer_0.Fields.FieldCount))
         {
             Exception exception;
             try
             {
                 object obj2   = icoFeature_0.GetValue(field.Name);
                 IField field3 = ifeatureBuffer_0.Fields.get_Field(index);
                 if (field3 != null)
                 {
                     object obj3 = Class4.ToObjectFun(obj2, field3);
                     switch (field3.Type)
                     {
                     case esriFieldType.esriFieldTypeOID:
                     case esriFieldType.esriFieldTypeGeometry:
                     {
                         continue;
                     }
                     }
                     ifeatureBuffer_0.set_Value(index, obj3);
                 }
                 else
                 {
                     try
                     {
                         ifeatureBuffer_0.set_Value(index, obj2);
                     }
                     catch (Exception exception1)
                     {
                         exception = exception1;
                         Debug.WriteLine(exception.Message);
                     }
                 }
             }
             catch (Exception exception2)
             {
                 exception = exception2;
                 Debug.WriteLine(exception.Message);
             }
         }
     }
 }
コード例 #2
0
ファイル: ShapeLayerClass.cs プロジェクト: secondii/Yutai
        private void method_3(ICoFeature icoFeature_0, int int_0)
        {
            try
            {
                int      num2;
                DateTime time;
                if (this.coLayerMapper_0 == null)
                {
                    goto Label_016A;
                }
                int num = 0;
Label_0011:
                if (num >= this.coLayerMapper_0.FieldRelation.Count)
                {
                    return;
                }
                CoFieldMapper mapper      = this.coLayerMapper_0.FieldRelation[num];
                ICoField      destField   = mapper.DestField;
                ICoField      sourceField = mapper.SourceField;
                object        obj2        = "";
                try
                {
                    obj2 = icoFeature_0.GetValue(sourceField);
                }
                catch
                {
                    obj2 = "";
                }
                goto Label_010A;
Label_006B:
                ShapeLib.DBFWriteStringAttribute(this.intptr_1, int_0, num2, obj2.ToString().ToUpper());
                goto Label_0101;
Label_0088:
                ShapeLib.DBFWriteIntegerAttribute(this.intptr_1, int_0, num2, this.method_7(obj2.ToString()));
                goto Label_0101;
Label_00A6:
                ShapeLib.DBFWriteDoubleAttribute(this.intptr_1, int_0, num2, this.method_6(obj2.ToString()));
                goto Label_0101;
Label_00C4:
                ShapeLib.DBFWriteLogicalAttribute(this.intptr_1, int_0, num2, this.method_5(obj2.ToString()));
                goto Label_0101;
Label_00E2:
                time = DateTime.Parse(obj2.ToString());
                ShapeLib.DBFWriteDateAttribute(this.intptr_1, int_0, num2, time);
Label_0101:
                num++;
                goto Label_0011;
Label_010A:
                num2 = ShapeLib.DBFGetFieldIndex(this.intptr_1, destField.Name);
                int           num3    = 0;
                int           num4    = 0;
                StringBuilder builder = new StringBuilder(destField.Name);
                switch (ShapeLib.DBFGetFieldInfo(this.intptr_1, num2, builder, ref num3, ref num4))
                {
                case ShapeLib.DBFFieldType.FTString:
                    goto Label_006B;

                case ShapeLib.DBFFieldType.FTInteger:
                    goto Label_0088;

                case ShapeLib.DBFFieldType.FTDouble:
                    goto Label_00A6;

                case ShapeLib.DBFFieldType.FTLogical:
                    goto Label_00C4;

                case ShapeLib.DBFFieldType.FTInvalid:
                    goto Label_0101;

                case ShapeLib.DBFFieldType.FTDate:
                    goto Label_00E2;

                default:
                    goto Label_0101;
                }
Label_016A:
                using (List <ICoField> .Enumerator enumerator = icoFeature_0.Layer.Fields.GetEnumerator())
                {
Label_017D:
                    if (!enumerator.MoveNext())
                    {
                        return;
                    }
                    ICoField current = enumerator.Current;
                    obj2 = "";
                    try
                    {
                        obj2 = icoFeature_0.GetValue(current);
                    }
                    catch
                    {
                        obj2 = "";
                    }
                    goto Label_0256;
Label_01B5:
                    ShapeLib.DBFWriteStringAttribute(this.intptr_1, int_0, num2, obj2.ToString().ToUpper());
                    goto Label_017D;
Label_01D2:
                    ShapeLib.DBFWriteIntegerAttribute(this.intptr_1, int_0, num2, this.method_7(obj2.ToString()));
                    goto Label_017D;
Label_01F0:
                    ShapeLib.DBFWriteDoubleAttribute(this.intptr_1, int_0, num2, this.method_6(obj2.ToString()));
                    goto Label_017D;
Label_0211:
                    ShapeLib.DBFWriteLogicalAttribute(this.intptr_1, int_0, num2, this.method_5(obj2.ToString()));
                    goto Label_017D;
Label_0232:
                    time = DateTime.Parse(obj2.ToString());
                    ShapeLib.DBFWriteDateAttribute(this.intptr_1, int_0, num2, time);
                    goto Label_017D;
Label_0256:
                    num2    = ShapeLib.DBFGetFieldIndex(this.intptr_1, current.Name);
                    num3    = 0;
                    num4    = 0;
                    builder = new StringBuilder(current.Name);
                    switch (ShapeLib.DBFGetFieldInfo(this.intptr_1, num2, builder, ref num3, ref num4))
                    {
                    case ShapeLib.DBFFieldType.FTString:
                        goto Label_01B5;

                    case ShapeLib.DBFFieldType.FTInteger:
                        goto Label_01D2;

                    case ShapeLib.DBFFieldType.FTDouble:
                        goto Label_01F0;

                    case ShapeLib.DBFFieldType.FTLogical:
                        goto Label_0211;

                    case ShapeLib.DBFFieldType.FTDate:
                        goto Label_0232;
                    }
                    goto Label_017D;
                }
            }
            catch
            {
            }
        }