您的位置:首页 > 编程语言 > C#

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

2006-10-04 19:51 495 查看
最近公司的老板要求把软件做成模块化的,只需要从公司的功能库中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 = "文件(&F)">


            <MenuItem   ID = "m_menu_file_new" 


                        Label = "新建(&N)" 


                        ShortCut = "Control|N" 


                        Icon = "" 


                        Class = ""/>


            <MenuItem   ID = "m_menu_file_open" 


                        Label = "打开(&O)..." 


                        ShortCut = "Control|O" 


                        Icon = "" 


                        Class = ""/>


            <MenuItem  Category = "separator"/>


            <MenuItem   ID = "m_menu_file_save" 


                        Label = "保存(&S)..." 


                        ShortCut = "Control|S" 


                        Icon = "" 


                        Class = ""/>


            <MenuItem   ID = "m_menu_file_savesa" 


                        Label = "另存为(&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 = "打印(&P)..." 


                        ShortCut = "Control|P" 


                        Icon = "" 


                        Class = ""/>


            <MenuItem   ID = "m_menu_file_preview" 


                        Label = "打印预览(&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 = "退出(&X)" 


                        ShortCut = "Control|X" 


                        Icon = "" 


                        Class = ""/>


        </MenuItem>




        <MenuItem ID = "m_menu_control" Label = "控制(&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 = "观测(&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 = "查看(&V)"></MenuItem>




        <MenuItem ID = "m_menu_window" Label = "窗口(&W)">


            <MenuItem   ID ="m_menu_window_new"


                        Label="新建窗口(&N)"


                        ShortCut=""


                        Icon=""


                        Class=""/>


            <MenuItem   Category="separator"/>


            <MenuItem   ID ="m_menu_window_close"


                        Label="关闭(&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="窗口(&W)..."


                        ShortCut=""


                        Icon=""


                        Class=""/>


        </MenuItem>




        <MenuItem ID = "m_menu_help" Label = "帮助(&H)">


            <MenuItem   ID = "m_menu_help_about" 


                        Label = "关于(&A)" 


                        ShortCut = "Control|A" 


                        Icon = "" 


                        Class = ""/>


            <MenuItem   ID = "m_menu_help_topic" 


                        Label = "帮助主题(&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、脚本与脚本之间可以存在依赖关系。

需要源代码的请留下邮箱
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐