中文

操作方法:从地理数据库中移除要素类扩展

摘要

在(已安装 ArcGIS Desktop 的)计算机 A 上创建要素类扩展后,用户应遵照以下两个步骤的工作流:

  1. 将类扩展的 DLL 注册到 ArcGIS Desktop。
  2. 以编程方式将类扩展应用到特定要素类,使用:
    IClassSchemaEdit2.AlterClassExtensionCLSID(extUID, extensionProperties)
    这基于 ArcObjects .NET Web 帮助文档:创建类扩展
在已安装 ArcGIS Desktop 的次要计算机或虚拟计算机(计算机 B)上,由于该计算机并非注册要素类扩展的计算机,因此从该计算机的企业级地理数据库中移除类扩展具有一定的挑战性。 尝试以编程方式应用以下代码来移除类扩展(使用 Engine 控制台应用程序或 ArcMap 加载项)不成功:
classSchemaEdit.AlterClassExtensionCLSID(null, null)
这是因为必须将 ArcGIS Desktop 或 Engine 注册到类扩展,才能将其移除。 提供的说明介绍了如何从地理数据库中移除要素类扩展。

过程

  1. 将 类扩展 DLL 复制到新计算机,然后针对 Desktop Engine 通过运行 EsriRegAsm.exe 进行注册。
  2. 连接到企业级地理数据库(使用直连 SDE 连接) ,其中包含具有相关类扩展的要素类 ,然后以编程方式通过调用以下代码来移除类扩展:
    classSchemaEdit.AlterClassExtensionCLSID(null, null)
    可以从独立控制台应用程序或 ArcMap 加载项 OnClick 事件调用以上代码行。
  3. 针对 Desktop Engine 使用 EsriRegAsm 取消注册类扩展。
  4. 在 Visual Studio 中创建新的类扩展,然后按照以下两个步骤的工作流启用 同一要素类上的 类扩展。
    1. 将新的类扩展注册到 ArcGIS Desktop 或 Engine
    2. 使用控制台或桌面应用程序通过执行以下代码将类扩展应用到一个或多个要素类:
      IClassSchemaEdit2.AlterClassExtensionCLSID(extUID, extensionProperties)

相关信息