我心飞翔

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

C#反射的应用

由于最近主要做RFID设备的软件中间件开发,
期间遇到了一个问题,
就是RFID设备非常多,而且会不断增加,
上层应用软件的开发人员希望能提供统一的接口,这样他们就不需要在硬件设备改变时做太多的修改
经过一番考虑后,我决定在接口程序中采用先装载设备dll,再利用反射创建对象的方法来实现上述功能
下面是我在类工厂中实现创建对象的函数

 1 public iRfidMidWare CreateObject(string pDeviceName,string pDllName) 
 2  {
 3   iRfidMidWare mInterface = null;
 4   try
 5   {
 6      string mpath = Application.StartupPath+"\\"+pDllName;
 7     Assembly asm = Assembly.LoadFrom(mpath);
 8     //string mDevice = "tttt."+pDeviceName;
 9     Type tp = asm.GetType(pDeviceName);
10     mInterface = (iRfidMidWare)System.Activator.CreateInstance(tp);
11   }

12   catch(TypeLoadException e)
13   {
14    Console.WriteLine(e.Message);
15   }

16   return mInterface;
17  }

18


 这样,在设备改变时,应用程序端只需要改变对象的参数就可以了,无需更改其它代码

posted on 2005-09-09 12:08  Henry  阅读(1692)  评论(3)    收藏  举报