用C#编写的插件管理程序

最近公司的老板要求把软件做成模块化的,只需要从公司的功能库中Check若干个,组合一下(不要编译)就可以成为一个新的软件的要求。 

为了实现这个要求,实现了一个插件工具(尚处于第一个阶段)。

XML配置如下:

app.xml

<? xml version="1.0" encoding="GB2312" ?>
< Application >
    
< Runtimes >
        
< Runtime  Import  = "System"   />
        
< Runtime  Import  = "System.Windows.Forms"   />
    
</ Runtimes >
  
    
< Modules >
        
< Module  ReferenceFile  ="./Module.addin"   />
    
</ Modules >     
</ Application >

Module.addin如下:

 

<? xml version="1.0" encoding="gb2312"  ?>
< Module  Name  = "索力测试"  
        SN 
= "6B272DB3-1ADA-47fe-AA36-9C2C5A6EBC83"  
        Icon 
=""  
        IsEnabled 
= "true" >

    
< References >
        
< Reference  Assembly  = "..TestRxAddInCore.dll"   />
    
</ References >

    
< Resources >
        
< Resource  File  = ".strings.resources"  Type  = "string"   />
        
< Resource  File  = ".images.resources"  Type  = "images"   />
    
</ Resources >

    
< Path  Name  = "MainMenu" >
        
< MenuItem  ID  = "m_menu_file"  Label  = "文件(&amp;F)" >
            
< MenuItem    ID  = "m_menu_file_new"  
                        Label 
= "新建(&amp;N)"  
                        ShortCut 
= "Control|N"  
                        Icon 
= ""  
                        Class 
= "" />
            
< MenuItem    ID  = "m_menu_file_open"  
                        Label 
= "打开(&amp;O)..."  
                        ShortCut 
= "Control|O"  
                        Icon 
= ""  
                        Class 
= "" />
            
< MenuItem   Category  = "separator" />
            
< MenuItem    ID  = "m_menu_file_save"  
                        Label 
= "保存(&amp;S)..."  
                        ShortCut 
= "Control|S"  
                        Icon 
= ""  
                        Class 
= "" />
            
< MenuItem    ID  = "m_menu_file_savesa"  
                        Label 
= "另存为(&amp;A)..."  
                        ShortCut 
= ""  
                        Icon 
= ""  
                        Class 
= "" />
            
< MenuItem    ID  = "m_menu_file_datasavesa"  
                        Label 
= "数据另存为"  
                        ShortCut 
= ""  
                        Icon 
= ""  
                        Class 
= "" >
                
< MenuItem    ID  = "m_menu_datasavesa_txt"  
                             Label 
= "文本文件"   
                             ShortCut 
= ""  
                             Class 
= ""
                             Icon 
= ""   />
                
< MenuItem    ID  = "m_menu_datasavesa_excel"  
                             Label 
= "Excel文件"   
                             ShortCut 
= ""  
                             Class 
= ""
                             Icon 
= ""   />
                
< MenuItem    ID  = "m_menu_datasavesa_word"  
                             Label 
= "Word文件"   
                             ShortCut 
= ""  
                             Class 
= ""
                             Icon 
= ""   />
                
< MenuItem    ID  = "m_menu_datasavesa_matlab"  
                             Label 
= "MatLab Workspace"   
                             ShortCut 
= ""  
                             Class 
= ""
                             Icon 
= ""   />
            
</ MenuItem >
            
< MenuItem   Category  = "separator" />
            
< MenuItem    ID  = "m_menu_file_print"  
                        Label 
= "打印(&amp;P)..."  
                        ShortCut 
= "Control|P"  
                        Icon 
= ""  
                        Class 
= "" />
            
< MenuItem    ID  = "m_menu_file_preview"  
                        Label 
= "打印预览(&amp;W)..."  
                        ShortCut 
= ""  
                        Icon 
= ""  
                        Class 
= "" />
            
< MenuItem   Category  = "separator" />
            
< MenuItem    ID  = "m_menu_file_import"  
                        Label 
= "导入"  
                        ShortCut 
= ""  
                        Icon 
= ""  
                        Class 
= "" >
                
< MenuItem    ID  = "m_menu_file_import_sensor"  
                             Label 
= "传感器信息"   
                             ShortCut 
= ""  
                             Class 
= ""
                             Icon 
= ""   />
                
< MenuItem    ID  = "m_menu_file_import_cable"  
                             Label 
= "索信息"   
                             ShortCut 
= ""  
                             Class 
= ""
                             Icon 
= ""   />
            
</ MenuItem >
            
< MenuItem    ID  = "m_menu_file_export"  
                        Label 
= "导出"  
                        ShortCut 
= ""  
                        Icon 
= ""  
                        Class 
= "" >
                
< MenuItem    ID  = "m_menu_file_export_sensor"  
                             Label 
= "传感器信息"   
                             ShortCut 
= ""  
                             Class 
= ""
                             Icon 
= ""   />
                
< MenuItem    ID  = "m_menu_file_export_cable"  
                             Label 
= "索信息"   
                             ShortCut 
= ""  
                             Class 
= ""
                             Icon 
= ""   />
            
</ MenuItem >
            
< MenuItem   Category  = "separator" />
            
< MenuItem    ID  = "m_menu_file_exit"  
                        Label 
= "退出(&amp;X)"  
                        ShortCut 
= "Control|X"  
                        Icon 
= ""  
                        Class 
= "" />
        
</ MenuItem >

        
< MenuItem  ID  = "m_menu_control"  Label  = "控制(&amp;C)" >
            
< MenuItem    ID  ="m_menu_control_blance"
                        Label
="平衡"
                        ShortCut
=""
                        Icon
=""
                        Class
="" />
            
< MenuItem   Category  = "separator" />
            
< MenuItem    ID  ="m_menu_control_sampling_start"
                        Label
="开始采样"
                        ShortCut
=""
                        Icon
=""
                        Class
="" />
            
< MenuItem    ID  ="m_menu_control_sampling_pause"
                        Label
="暂停采样"
                        ShortCut
=""
                        Icon
=""
                        Class
="" />
            
< MenuItem    ID  ="m_menu_control_sampling_stop"
                        Label
="停止采样"
                        ShortCut
=""
                        Icon
=""
                        Class
="" />
            
< MenuItem   Category  = "separator" />
            
< MenuItem    ID  ="m_menu_control_replay_start"
                        Label
="开始回放"
                        ShortCut
=""
                        Icon
=""
                        Class
="" />
            
< MenuItem    ID  ="m_menu_control_replay_pause"
                        Label
="暂停回放"
                        ShortCut
=""
                        Icon
=""
                        Class
="" />
            
< MenuItem    ID  ="m_menu_control_replay_stop"
                        Label
="停止回放"
                        ShortCut
=""
                        Icon
=""
                        Class
="" />
        
</ MenuItem >

        
< MenuItem  ID  = "m_menu_observation "  Label  = "观测(&amp;O)" >
            
< MenuItem    ID  ="m_menu_observation_cursor"
                        Label
="光标"
                        ShortCut
=""
                        Icon
=""
                        Class
="" >
                
< MenuItem    ID  = "m_menu_cursor_single"  
                             Label 
= "单光标"   
                             ShortCut 
= ""  
                             Class 
= "TestRxAddInCore.NewProjectCommand"
                             Icon 
= ""   />
                
< MenuItem    ID  = "m_menu_cursor_double"  
                             Label 
= "双光标"   
                             ShortCut 
= ""  
                             Icon 
= ""                               
                             Class 
= "" />
                
< MenuItem    ID  = "m_menu_cursor_four"  
                             Label 
= "四光标"   
                             ShortCut 
= ""  
                             Icon 
= ""  
                             Class 
= "" />
                
< MenuItem    ID  = "m_menu_cursor_xie"  
                             Label 
= "谐光标"   
                             ShortCut 
= ""  
                             Icon 
= ""  
                             Class 
= "" />
                
< MenuItem   Category  = "separator" />
                
< MenuItem    ID  = "m_menu_cursor_peak"  
                             Label 
= "峰值列表"   
                             ShortCut 
= ""  
                             Icon 
= ""  
                             Class 
= "" />
                
< MenuItem    ID  = "m_menu_cursor_sync"  
                             Label 
= "光标同步"   
                             ShortCut 
= ""  
                             Icon 
= ""  
                             Class 
= "" />
            
</ MenuItem >
            
< MenuItem    Category ="separator" />
            
< MenuItem    ID  ="m_menu_observation_move"
                        Label
="数据移动"
                        ShortCut
=""
                        Icon
=""
                        Class
="" >
                
< MenuItem    ID  = "m_menu_move_prev"  
                             Label 
= "移动上一块"   
                             ShortCut 
= "Control|Left"  
                             Class 
= ""
                             Icon 
= ""   />
                
< MenuItem    ID  = "m_menu_move_prev_sync"  
                             Label 
= "同步移动上一块"   
                             ShortCut 
= "Control|Shift|Left"  
                             Class 
= ""
                             Icon 
= ""   />
                
< MenuItem    ID  = "m_menu_move_next_sync"  
                             Label 
= "同步移动下一块"   
                             ShortCut 
= "Control|Shift|Right"  
                             Class 
= ""
                             Icon 
= ""   />
                
< MenuItem    ID  = "m_menu_move_next"  
                             Label 
= "移动下一块"   
                             ShortCut 
= "Control|Right"  
                             Class 
= ""
                             Icon 
= ""   />
                
< MenuItem   Category  = "separator" />
                
< MenuItem    ID  = "m_menu_move_goto"  
                             Label 
= "数据定位"   
                             ShortCut 
= "Control|G"  
                             Class 
= ""
                             Icon 
= ""   />
                
< MenuItem   Category  = "separator" />
                
< MenuItem    ID  = "m_menu_move_first"  
                             Label 
= "移动到第一块"   
                             ShortCut 
= "Control|PageUp"  
                             Class 
= ""
                             Icon 
= ""   />
                
< MenuItem    ID  = "m_menu_move_last"  
                             Label 
= "移动到最后一块"   
                             ShortCut 
= "Control|PageDown"  
                             Class 
= ""
                             Icon 
= ""   />
            
</ MenuItem >
            
< MenuItem    Category ="separator" />
            
< MenuItem    ID  ="m_menu_observation_zoom"
                        Label
="图形缩放"
                        ShortCut
=""
                        Icon
=""
                        Class
="" >
                
< MenuItem    ID  = "m_menu_zoom_h_in"  
                             Label 
= "横向放大"   
                             ShortCut 
= ""  
                             Class 
= ""
                             Icon 
= ""   />
                
< MenuItem    ID  = "m_menu_zoom_h_out"  
                             Label 
= "横向缩小"   
                             ShortCut 
= ""  
                             Class 
= ""
                             Icon 
= ""   />
                
< MenuItem    ID  = "m_menu_zoom_v_in"  
                             Label 
= "纵向放大"   
                             ShortCut 
= ""  
                             Class 
= ""
                             Icon 
= ""   />
                
< MenuItem    ID  = "m_menu_zoom_v_out"  
                             Label 
= "纵向缩小"   
                             ShortCut 
= ""  
                             Class 
= ""
                             Icon 
= ""   />
                
< MenuItem   Category  = "separator" />
                
< MenuItem    ID  = "m_menu_zoom_xy_in"  
                             Label 
= "增加X-Y记录仪数据量"   
                             ShortCut 
= ""  
                             Class 
= ""
                             Icon 
= ""   />
                
< MenuItem    ID  = "m_menu_zoom_xy_out"  
                             Label 
= "减少X-Y记录仪数据量"   
                             ShortCut 
= ""  
                             Class 
= ""
                             Icon 
= ""   />
            
</ MenuItem >
            
< MenuItem    Category ="separator" />
            
< MenuItem    ID  ="m_menu_observation_scale"
                        Label
="刻度"
                        ShortCut
=""
                        Icon
=""
                        Class
="" >
                
< MenuItem    ID  = "m_menu_scale_auto"  
                             Label 
= "自动刻度"   
                             ShortCut 
= ""  
                             Class 
= ""
                             Icon 
= ""   />
                
< MenuItem    ID  = "m_menu_scale_default"  
                             Label 
= "默认刻度"   
                             ShortCut 
= ""  
                             Class 
= ""
                             Icon 
= ""   />
                
< MenuItem    ID  = "m_menu_scale_fixed"  
                             Label 
= "固定刻度"   
                             ShortCut 
= ""  
                             Class 
= ""
                             Icon 
= ""   />
            
</ MenuItem >
            
< MenuItem    Category ="separator" />
            
< MenuItem    ID  ="m_menu_observation_info"
                        Label
="基频索力显示窗"
                        ShortCut
=""
                        Icon
=""
                        Class
="" />
        
</ MenuItem >

        
< MenuItem  ID  = "m_menu_view"  Label  = "查看(&amp;V)" ></ MenuItem >

        
< MenuItem  ID  = "m_menu_window"  Label  = "窗口(&amp;W)" >
            
< MenuItem    ID  ="m_menu_window_new"
                        Label
="新建窗口(&amp;N)"
                        ShortCut
=""
                        Icon
=""
                        Class
="" />
            
< MenuItem    Category ="separator" />
            
< MenuItem    ID  ="m_menu_window_close"
                        Label
="关闭(&amp;C)"
                        ShortCut
=""
                        Icon
=""
                        Class
="" />
            
< MenuItem    ID  ="m_menu_window_closeall"
                        Label
="全部关闭"
                        ShortCut
=""
                        Icon
=""
                        Class
="" />
            
< MenuItem    ID  ="m_menu_window_closeother"
                        Label
="除此以外全部关闭"
                        ShortCut
=""
                        Icon
=""
                        Class
="" />
            
< MenuItem    Category ="separator" />
            
< MenuItem    ID  ="m_menu_window_cascade"
                        Label
="层叠"
                        ShortCut
=""
                        Icon
=""
                        Class
="" />
            
< MenuItem    ID  ="m_menu_window_htile"
                        Label
="水平平铺"
                        ShortCut
=""
                        Icon
=""
                        Class
="" />
            
< MenuItem    ID  ="m_menu_window_vtile"
                        Label
="垂直平铺"
                        ShortCut
=""
                        Icon
=""
                        Class
="" />
            
< MenuItem    Category ="separator" />
            
< MenuItem    ID  ="m_menu_window_mgr"
                        Label
="窗口(&amp;W)..."
                        ShortCut
=""
                        Icon
=""
                        Class
="" />
        
</ MenuItem >

        
< MenuItem  ID  = "m_menu_help"  Label  = "帮助(&amp;H)" >
            
< MenuItem    ID  = "m_menu_help_about"  
                        Label 
= "关于(&amp;A)"  
                        ShortCut 
= "Control|A"  
                        Icon 
= ""  
                        Class 
= "" />
            
< MenuItem    ID  = "m_menu_help_topic"  
                        Label 
= "帮助主题(&amp;H)"  
                        ShortCut 
= "Control|H"  
                        Icon 
= ""  
                        Class 
= "" />
        
</ MenuItem >
    
</ Path >

    
< Path  Name  = "Toolbar" >
        
< ToolBar  Label  = "常用工具条"  ID  = "m_ToolBar_Common" >
            
< ToolbarItem     ID  = "m_tool_new"  
                            Tooltip 
= "新建需求"  
                            Icon 
= "${DeleteHS}"  
                            Class 
= "TestRxAddInCore.NewProjectCommand" />

            
< ToolbarItem     Category  = "separator" />

            
< ToolbarItem     ID  = "m_tool_mode"
                            Tooltip 
= "分析模式"
                            Class 
= "TestRxAddInCore.NewProjectCommand"
                            Category 
= "Combobox" >
                
< ComboboxItem  Label  = "相关分析" ></ ComboboxItem >
                
< ComboboxItem  Label  = "时域分析"  IsDefault  ="true" ></ ComboboxItem >
            
</ ToolbarItem >

            
< ToolbarItem     ID  = "m_tool_cursor"
                            Tooltip 
= "光标开关"
                            Class 
= "TestRxAddInCore.NewProjectCommand"
                            Icon 
= "${Edit_RedoHS}"  
                            Category 
= "SplitButton" >
                
< SplitItem    ID  = "m_tool_cursor_single"  
                             Label 
= "单光标"   
                             ShortCut 
= ""  
                             Class 
= "TestRxAddInCore.NewProjectCommand"
                             Icon 
= ""   />
                
< SplitItem    ID  = "m_tool_cursor_double"  
                             Label 
= "双光标"   
                             ShortCut 
= ""  
                             Icon 
= ""                               
                             Class 
= "" />
                
< SplitItem    ID  = "m_tool_cursor_four"  
                             Label 
= "四光标"   
                             ShortCut 
= ""  
                             Icon 
= ""  
                             Class 
= "" />
                
< SplitItem    ID  = "m_tool_cursor_xie"  
                             Label 
= "谐光标"   
                             ShortCut 
= ""  
                             Icon 
= ""  
                             Class 
= "" />
                
< SplitItem   Category  = "separator" />
                
< SplitItem    ID  = "m_tool_cursor_peak"  
                             Label 
= "峰值列表"   
                             ShortCut 
= ""  
                             Icon 
= ""  
                             Class 
= "" />
                
< SplitItem    ID  = "m_tool_cursor_sync"  
                             Label 
= "光标同步"   
                             ShortCut 
= ""  
                             Icon 
= ""  
                             Class 
= "" />
            
</ ToolbarItem >
        
</ ToolBar >
    
</ Path >
</ Module >

效果:

 

新增功能:(2006-10-11

1、增加了对脚本的支持。支持的脚本有C#、VB.NET、JScript、J#。对于脚本采用预编译机制。

2、脚本与脚本之间可以存在依赖关系。

需要源代码的请留下邮箱

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 32
    评论
评论 32
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值