C#可以通过反射实例化对象,并且根据函数名去执行对象的方法。

加载对象并实例化对象

var assemblys = AppDomain.CurrentDomain.GetAssemblies();
var type = assemblys.Where(p => EditFormFullName.Contains(p.GetName().Name)).FirstOrDefault()?.GetType(EditFormFullName);
var instance = Activator.CreateInstance(type);

获取对象方法

var targetMethod = type.GetMethod("Render", BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance);
调用对象的方法
targetMethod.Invoke(instance, null);

调用对象继承的父对象方法

var form = instance as Form;
form.ShowDialogWithMask();
有时我们可能需要执行对象的父级方法,那么我们可以将对象转成父对象然后调用。