C# 通过反射创建实例

246 阅读1分钟

C# 通过反射创建实例


应用场景

一个系统的业务功能往往会包含很多,而业务功能往往也会伴随着经常调整、修改、重构的烦恼。如果当你需要一个功能,在后台实例对象会变得非常的不灵活。怎么在我们需要使用该功能的时候,就去实例对象,不需要的时候就可抛弃也不是影响呢。

前期准备

该应用的程序集 xx.dll 、以及功能名称通常是xx.cs

具体实现

  • 获取程序集对象
string filePath = Path.Conbine(AppDomain.CurrentDomian.BaseDirectory,assemblyName);
if(File.Exists(filePath))
    Assembly myAssembly = Assembly.LoadFile(filePath);
  • 创建实例对象
Type myType = myAssembly.GetType(fileName,false,ture);
Form myForm = Activator.CreateInstance(myType) as Form;

至此,用反射加载程序集来创建对象已经完成,我们就可以像操作普通类那样进行操作了。