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;
复制代码
至此,用反射加载程序集来创建对象已经完成,我们就可以像操作普通类那样进行操作了。