在C#中制作支持dll扩展的模块化程序

时间:2015-10-09 10:44:24

标签: c#

我正在创建一个显示带有文本字段和激活按钮的表单的程序,用户在文本字段中输入某些代码,单击激活按钮,它根据用户输入的代码完成工作

我已经成功创建了一个表单,并在激活按钮单击事件中调用另一个类的方法(名为Output),如下所示

Output o = new Output();//Created object for output class  
o.effect(s.Text);//here effect() is function of Output and s is textfield

在输出类的效果()函数

void effect(String str)  
{  
    switch(str)  
    {  
        case "code1": Console.Write("you enter code1");  //all the things to be done if code1 input    
        break;  
        ...  
        ...  
        default: ...;  
        break;  
    }  
}

上述类已成功编译并正常运行。但是现在我想为这个程序提供一个dll支持,这样每当我需要添加更多代码时,我就可以轻松地创建一个新的dll(Say,Outputversion2.dll),其中有类似上面的代码输出类可以输入主程序表。

像代码扩展......

我不想通过每次编辑来错误地破坏主程序,以添加更多代码,这就是我想到它的原因。

希望你明白我想做什么。 我只是初学c#,刚刚在一个月前学到了。 对不起任何语法错误,我的英语也不太好。

感谢你。

1 个答案:

答案 0 :(得分:1)

我不确定你在这里要做什么。如果您希望能够动态添加新的DLL,每个DLL都有一组处理程序(即案例),那么您应该使用Managed Extensibility Framework。否则,如果您要做的只是将所有处理程序放在一个可以随时替换的单独DLL中,则应将Output类放在类库中,该类将编译为DLL;然后你就可以换掉这个DLL的版本而不必担心改变主程序,只要你不改变界面(类和它们的功能'返回类型和参数;你可以改变它内部的代码功能尽可能多。)

另外,如果您担心破坏主程序的稳定性,我建议保留源代码的备份,而不是在您多次完全测试之前发布新版本。

我希望这会有所帮助。