在不重新编译主程序的情况下要对程序的功能进行扩充,我们可以使用动态生成菜单,将新增的窗体编译成dll文件,然后在主程序的菜单定义文件中注册,即可解决,以后程序升级,只需将对应的dll覆盖。
1.菜单定义文件可以使用ini或XML格式,这里使用的是XML格式
定义主菜单,子菜单,子菜单对应的dll,子菜单对应的函数
dymenu.xml内容如下
<主菜单>动态菜单1
<子菜单>OpenForm1子菜单>
<菜单DLL>MyForms.dll菜单DLL>
<菜单Func>OpenForm1菜单Func>
<子菜单>OpenForm2子菜单>
<菜单DLL>MyForms.dll菜单DLL>
<菜单Func>OpenForm2菜单Func>
主菜单>
<主菜单>动态菜单2
<子菜单>OpenForm3子菜单>
<菜单DLL>MyForms.dll菜单DLL>
<菜单Func>OpenForm3菜单Func>
主菜单>
<主菜单>动态菜单3
<子菜单>OpenForm4子菜单>
<菜单DLL>MyForms.dll菜单DLL>
<菜单Func>OpenForm4菜单Func>
主菜单>
2.菜单对应的MyForms.dll
MyForms.cs 代码如下:
using System;
namespace MyForms
{
public class MyForms
{
public MyForms()
{
}
public void OpenForm1(System.Windows.Forms.Form mainf)