从配置文件中读取自定义扩展类的模式

从配置文件中读取自定义扩展类的模式

在.net应用程序中,经常会看到配置文件中有类似如下的定义 type="MyClass, DllFile" ,我们在使用.net  remoting的时候就会遇到。其实自己也可以这样来用的,前提条件是你的应用程序需要有很好的扩展性的时候。

这里要说的就是自己要实现扩展类的一种模式。大家看定义:

public interface Ixxxxxx
{
void Init(XmlNode configNode);
..
}

首先要定义如上的抽象接口,接口中一定要一个Init,其他的按自己需要而定。
装入类的时候代码如下:

void LoadConfig(.)
{
XmlNode node 
= (XmlNode)ConfigurationSettings.GetConfig("MySection");
if( node == null )
    _instance 
= new MyDefaultIxxxxxx();
else
{
    _instance 
= Activator.CreateInstance(Type.GetType(node["type"].InnerText));
    _instance.Init(node);
}

}

基本的思路就是通过反射生成一个实例,然后用 Init 进行未完成的初始化。

简单吧!可是我们为什么不能第一个想出来呢?

原文地址:https://www.cnblogs.com/BigTall/p/76994.html