ArcObjects .NET 创建扩展类

扩展方法主要是让血压低一点


# 概述

基于ArcEngine进行GIS二次开发实现某些具体的功能时,如获取某个iFeature的属性表,需要将字段名和属性值一行一行添加到一个DataTable中,虽然不难,但是每用一次就要写一次就会相当难受。对于这种情况我们可以采用创建扩展方法来解决。
接下来以获取iFeature属性表为例,来实现扩展类的创建。iFeature属于ESRI.ArcGIS.Geodatabase.

# 思路

在Visual Studio中进行。

一、在项目下创建Extension文件夹,并在该文件夹下创建扩展类.cs.
二、更改新类的namespace为ESRI.ArcGIS.Geodatabase.
三、将类改为公共静态类。
四、填入实现代码。

# 代码实现

//调用
DataTable pDataTable = pFeature.GetFeatureDataTable();

//扩展类代码
namespace ESRI.ArcGIS.Geodatabase
{
    public static class FeatureEx
    {
         public static DataTable GetFeatureDataTable(this IFeature pFeature)
        {
            DataTable dt = new DataTable();
            dt.Columns.Add("字段:");
            dt.Columns.Add("值:");

            for (int i = 0; i < pFeature.Fields.FieldCount; i++)
            {
                DataRow dr = dt.NewRow();
                dr[0] = pFeature.Fields.Field[i].Name;
                dr[1] = pFeature.Value[i];
                dt.Rows.Add(dr);
            }
            return dt;
        }
    }
}

# Extra

截图展示

guest
0 Comments
Inline Feedbacks
View all comments