Хорошо, вот ситуация.Я ищу, чтобы пользовательское расширение arcobjects vb.net работало правильно на ArcMap10.5.При загрузке узлов в программе просмотра вложений я получаю следующую ошибку при вызове Private Sub LoadNodes ().
System.TypeLoadException: типы, выходящие из COM-объектов, должны переопределять все методы интерфейса, реализованные базовым COM-классом.
Если я удаляю эти строки из LoadNodes (), я не получаюSystem.TypeLoadException: и программа запускается через LoadNodes (), но явно терпит неудачу из-за отсутствия таблицы вложений.
' Get relAttachments table and set selection table for it
Dim relAttach As ESRI.ArcGIS.Carto.StandaloneTable = New cAttachStandAloneTable(mFWS.OpenTable(modDBNaming.GetQualifiedTableName("RelAttachments", mFWS)), "FCName")
mRelAttachSel = relAttach
Каким-то образом эта проблема связана с более новой средой, поскольку эта проблема не возникает в старой среде.
Текущая среда: Visual Studio 13 .net framework 4.5 ArcMap и Arcobjects 10.5 (10.4 имеет ту же проблему)
Старая среда: Visual Studio 8 .net framework 3.5 ArcMap и ArcAobjects 10.2.2и старше
Private Sub LoadNodes()
Try
lblStatus.Text = "Populating the tree view with the database layers"
Me.Cursor = Windows.Forms.Cursors.AppStarting
' Get relAttachments table and set selection table for it
Dim relAttach As ESRI.ArcGIS.Carto.StandaloneTable = New cAttachStandAloneTable(mFWS.OpenTable(modDBNaming.GetQualifiedTableName("RelAttachments", mFWS)), "FCName")
mRelAttachSel = relAttach
' Load relAttachments into dataset datatable
PopulateRelAttachmentsTable(relAttach.Table)
Dim relAttachDV As DataView = New DataView(mDataset.Tables("relAttachments"))
' Clear out reachnodes hashtable
mReachNodes.Clear()
' Run through any selected features and store in table
If mStandAlone = False Then
PopulateSelectionTable()
End If
Dim selDV As DataView = New DataView(mDataset.Tables("Selection"))
' Clear the tree
tvStream.Nodes.Clear()