用c#编写支持dll扩展的模块化程序



我正在创建一个程序,其中显示一个表单与文本字段和激活按钮,有一定的代码是由用户在文本字段中输入,并在点击激活按钮它做的工作基于用户输入的代码。

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

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

在Output类的effect()函数

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(例如,Outputversion2.dll),其中有类似上述输出类的代码,可以以主程序形式输入。

类似于代码扩展…

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

希望你能理解我想做什么。我只是c#的初学者,一个月前刚学会。很抱歉有语法错误,我的英语也不是很好。

我不知道你在这里想做什么。如果您希望能够动态地添加新的dll,每个dll都有一组处理程序(即案例),那么您可能应该使用托管可扩展性框架。否则,如果你想做的只是把所有处理程序放在一个可以随时替换的单独的DLL中,你应该把Output类放在一个类库中,它将编译成一个DLL;然后你可以换出这个DLL的版本,而不用担心改变主程序,只要你不改变接口(类及其函数的返回类型和参数;你可以随心所欲地修改函数中的代码)。

同样,如果你担心主程序的不稳定,我建议你保留源代码的备份,并且在你多次完全测试它们之前不要发布新版本。

最新更新