错误
当尝试编译 ArcObjects 编码来设置带有输入参数的界面属性(通常参数是一个索引),Visual Studio 2015 将返回 以下编译器错误:
错误: BC30643 属性“ESRI.ArcGIS.xxx”为不支持的类型
错误: BC30643 属性为不支持的类型 (Visual Basic)
以下是 IFieldsEdit 的使用示例。
Dim pFieldEdit As IFieldEdit = pField pFieldEdit.Name_2 = "OBJECTID" pFieldEdit.AliasName_2 = "FID" pFieldEdit.Type_2 = esriFieldType.esriFieldTypeOID Dim pFieldsEdit As IFieldsEdit = pFields pFieldsEdit.FieldCount_2 = 2 pFieldsEdit.Field_2(0) = pField
当尝试编译 ArcObjects 编码来设置带有输入参数的界面属性(通常参数是一个索引),Visual Studio 2015 将返回以下编译器错误:
错误: 语言不支持 CS1546 属性、索引器或事件, 请尝试直接调用存取器方法...以下是 IFieldsEdit 的使用示例。
IField field = new Field(); IFieldEdit fieldEdit = field as IFieldEdit; fieldEdit.Name_2 = "OBJECTID"; fieldEdit.AliasName_2 = "FID"; fieldEdit.Type_2 = esriFieldType.esriFieldTypeOID; IFields fields = new Fields(); IFieldsEdit fieldsEdit = fields as IFieldsEdit; fieldsEdit.Field_2[0] = field;
多个带有输入参数的 WriteOnly 属性会受到影响,且无法访问 Visual Studio 2015 中的 Visual Basic,其中包括但可能不限于:
Visual Basic 解决办法
对于 Visual Basic 问题,请使用 Visual Studio 2013 来编译和调试代码。
C# 解决办法
当使用 C# 时,请根据编译器输出重写代码,如下所示:
IFields fields = new Fields(); IFieldsEdit fieldsEdit = fields as IFieldsEdit; //fieldsEdit.Field_2[0] = field; fieldsEdit.set_Field(0, field);
此操作可修复编译器错误。
获取来自 ArcGIS 专家的帮助
下载 Esri 支持应用程序