Deutsch

How To: Entfernen einer Feature-Class-Erweiterung aus einer Geodatabase

Zusammenfassung

Wenn die Feature-Class-Erweiterung auf Computer A (auf dem ArcGIS Desktop installiert ist) erstellt wurde, muss der folgende, aus zwei Schritten bestehende Workflow eingehalten werden:

  1. Registrieren Sie die DLL der Klassenerweiterung bei ArcGIS Desktop.
  2. Wenden Sie die Klassenerweiterung mit folgendem Code programmgesteuert auf eine bestimmte Feature-Class an:
    IClassSchemaEdit2.AlterClassExtensionCLSID(extUID, extensionProperties)
    Dies basiert auf der ArcObjects .NET-Webhilfedokumentation Creating class extensions.
Es ist nicht einfach die Klassenerweiterung aus der Enterprise-Geodatabase auf einem sekundären Computer oder einem virtuellen Computer (Computer B), auf dem ArcGIS Desktop installiert ist, zu entfernen, da es sich dabei nicht um den Computer handelt, auf dem die Feature-Class-Erweiterung registriert wurde. Das programmgesteuerte Entfernen der Klassenerweiterung mit folgendem Code (mithilfe der Engine Console App oder dem ArcMap-Add-in) ist nicht erfolgreich:
classSchemaEdit.AlterClassExtensionCLSID(null, null)
Dies liegt daran, dass ArcGIS Desktop oder Engine bei der Klassenerweiterung registriert sein muss, bevor sie entfernt werden kann. In den Anweisungen unten wird beschrieben, wie eine Feature-Class-Erweiterung aus einer Geodatabase entfernt wird.

Vorgehensweise

  1. Kopieren Sie die Klassenerweiterungs-DLL auf den neuen Computer, und registrieren Sie sie durch Ausführen von "EsriRegAsm.exe" für Desktop oder Engine.
  2. Verbinden Sie sich mit der Enterprise-Geodatabase (mithilfe einer SDE-Direktverbindung), die die Feature-Classes mit der verknüpften Klassenerweiterung enthält, und entfernen Sie die Klassenerweiterung programmgesteuert mit folgendem Code:
    classSchemaEdit.AlterClassExtensionCLSID(null, null)
    Der oben gezeigte Code kann über eine eigenständige Konsolenanwendung oder über das OnClick-Ereignis des ArcMap-Add-ins ausgeführt werden.
  3. Heben Sie die Registrierung der Klassenerweiterung auf, indem Sie "EsriRegAsm" für Desktop oder Engine ausführen.
  4. Erstellen Sie in Visual Studio eine neue Klassenerweiterung, und befolgen Sie den oben genannten, aus zwei Schritten bestehenden Workflow, um die Klassenerweiterung für die gleichen Feature-Classes zu aktivieren.
    1. Registrieren Sie die neue Klassenerweiterung bei ArcGIS Desktop oder Engine.
    2. Wenden Sie die Klassenerweiterung mithilfe einer Konsolen- oder Desktopanwendung auf eine oder mehrere Feature-Classes an, indem Sie folgenden Code ausführen:
      IClassSchemaEdit2.AlterClassExtensionCLSID(extUID, extensionProperties)

Referenzinformationen