从配置文件中读取自定义扩展类的模式
在.net应用程序中,经常会看到配置文件中有类似如下的定义 type="MyClass, DllFile" ,我们在使用.net remoting的时候就会遇到。其实自己也可以这样来用的,前提条件是你的应用程序需要有很好的扩展性的时候。
这里要说的就是自己要实现扩展类的一种模式。大家看定义:
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/dot.gif)
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
首先要定义如上的抽象接口,接口中一定要一个Init,其他的按自己需要而定。
装入类的时候代码如下:
![](/Images/OutliningIndicators/None.gif)
![](/Images/dot.gif)
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
基本的思路就是通过反射生成一个实例,然后用 Init 进行未完成的初始化。
简单吧!可是我们为什么不能第一个想出来呢?