基于组件的.NET软件开发(5)

作者:袖梨 2022-07-02
实战:
创建一个VB.NET Windows应用程序:VBTestDynamicComponent。将前面介绍的两个类ComponentList和LoadComponent加入到工程中。
我们在程序启动时从配置文件中读入相关的程序集信息和类名信息,为此在主窗体的Form_Load过程中添加以下代码:

01 Private objLoadComponent As LoadComponent
02 Private VBObj As Object
03 Private ComponentReader As MyComponentList
04
05 Private Sub VBTestDynamicForm_Load(……) Handles MyBase.Load
06 objLoadComponent = New LoadComponent()
07 ComponentReader = New MyComponentList("Componentlist.xml")
08 Dim filename As String
09 Dim classname As String
10 ComponentReader.beginRead()
11 filename = ComponentReader.getFileName(0)
12 classname = ComponentReader.getClassName(0)
13 Dim ret As Boolean
14 ret = objLoadComponent.LoadComponentLibrary(filename)
15 VBObj = objLoadComponent.LoadClass(classname)
16 VBObj.show()
17 End Sub
我们看见,第07--10句从配置文件中取出DLL文件名和类名,第11、12句获取第一个DLL文件名和类名,然后在第14句装入组件库,第15句装入对象,因为返回的对象其实是一个窗体,所以,在第16句可以直接调用Show()方法显示此窗体。
从代码中可以看见,在.NET中动态创建对象是多么地方便和简单!请注意:在工程中我们甚至不需要给工程添加对特定组件的引用!本例中动态创建的对象是窗体,而Form对象是缺省就可使用的。在真实工程中,可以把所有的接口放入一个特定的DLL中,我称之为“Facade Assembly”,其它工程只需引用这个DLL,则实现了这些接口的所有组件都可自由地通过名字来创建!

相关文章

精彩推荐