标签:ogr names obj prope 点击 col assembly get adk
反射 别的用处先不管,至少在WinForm登录后的权限控制上有大用,比如登录后的窗体左侧树,点击通过字符串创建出窗体实例
案例如下图
AssTest类很简单
namespace assemblyTest { public class AssTest { public string Name{ get; set; } public int Age { get; set;} public string GetAssTest() { return string.Format("I Am {0}, i‘m {1} years old", Name, Age); } public int SumAB(int a, int b) { return a + b; } } }
控制台程序
namespace ConsoleApplication1 { class Program { static void Main(string[] args) { Assembly asb= Assembly.Load("assemblyTest");//类库信息 Type type = asb.GetType("assemblyTest.AssTest");//类的类型 object asstest = asb.CreateInstance("assemblyTest.AssTest");//创建类的对像 Form frmTest= (Form)asb.CreateInstance("assemblyTest.frmTest");//创建窗体的对像 类库中加了个窗体 这里也可以0.0 //属性赋值 type.GetProperty("Name").SetValue(asstest, "小王"); type.GetProperty("Age").SetValue(asstest, 18); MethodInfo mi = type.GetMethod("GetAssTest");//找到方法 Console.WriteLine( mi.Invoke(asstest,null)) ;//调用并输出 mi = type.GetMethod("SumAB"); object sumab = mi.Invoke(asstest, new object[] { 1, 2 }); Console.WriteLine(sumab);//调用并输出 frmTest.ShowDialog();//显示窗体 Console.ReadKey(); } } }
结果
标签:ogr names obj prope 点击 col assembly get adk
原文地址:https://www.cnblogs.com/SoftWareIe/p/8952922.html