扩展方法主要是让血压低一点
# 概述
基于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