一、概述
用程序实现Add from file,以使系统初始化的时候能按不同配置加载相应的扩展功能。
二、实现
 1、利用反射技术加载并注册dll文件
动态加载dll命令到ArcEngine的ToolbarControl中Dim asm As Assembly
动态加载dll命令到ArcEngine的ToolbarControl中asm 
= Assembly.LoadFile(filename)
动态加载dll命令到ArcEngine的ToolbarControl中
Dim regService As New RegistrationServices
动态加载dll命令到ArcEngine的ToolbarControl中regService.RegisterAssembly(asm, AssemblyRegistrationFlags.SetCodeBase)

注:其中filename是该dll文件的路径,该路径可以通过OpenFileDialog获取,也可以通过StreamReader读取配置文件中dll文件的路径信息批量获取。
2、利用AddItem添加dll中的Command到ToolbarControl上

动态加载dll命令到ArcEngine的ToolbarControl中            Dim t As Type() = asm.GetTypes()
动态加载dll命令到ArcEngine的ToolbarControl中            
Dim i As Int16
动态加载dll命令到ArcEngine的ToolbarControl中            
For i = 0 To t.Length - 1
动态加载dll命令到ArcEngine的ToolbarControl中                
If Not t(i).GetInterface("ICommand"Is Nothing Then
动态加载dll命令到ArcEngine的ToolbarControl中                    
Dim pUid As New UIDClass
动态加载dll命令到ArcEngine的ToolbarControl中                    pUid.Value 
= "{" & t(i).GUID.ToString & "}"
动态加载dll命令到ArcEngine的ToolbarControl中                    AxToolbarControl1.AddItem(pUid)
动态加载dll命令到ArcEngine的ToolbarControl中                
End If


三、参考
http://forums.esri.com/Thread.asp?c=159&f=1707&t=176719&mc=2#msgid520646
http://forums.esri.com/Thread.asp?c=159&f=1705&t=165566&mc=7#msgid486539

 

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-06-25
  • 2022-02-23
  • 2021-09-01
猜你喜欢
  • 2022-12-23
  • 2022-02-09
  • 2021-07-23
  • 2022-12-23
相关资源
相似解决方案