.NET 中关于反射的应用 (C#)

上一篇文章介绍了C++.NET创建的DLL用来实现创建快捷方式,现在使用.NET下的反射机制来动态调用这个DLL文件

using System.Reflection;

private void _Ref()
  {
   // 加载类所在的dll文件
   Assembly ass = Assembly.LoadFrom("ShortCut.dll");
   // 获取类型
   Type tp = ass.GetType("ShortCutLib.ShortCut");
   // 获取方法
   MethodInfo mi = tp.GetMethod("CreateLink");
   PropertyInfo [] _pi = tp.GetProperties();
   // 创建实例
   object obj = System.Activator.CreateInstance(tp);
   foreach(PropertyInfo _p in _pi)
   {
    if (_p.Name == "FilePath")
    {
     _p.SetValue(obj, "C://windows//notepad.exe", null);
    }
    else if (_p.Name == "LnkPath")
    {
     _p.SetValue(obj, Environment.GetFolderPath( Environment.SpecialFolder.Desktop) + "//abc.lnk", null);
    }
    else if (_p.Name == "LnkDesc")
    {
     _p.SetValue(obj, "This runs notepad", null);
    }
    else if (_p.Name == "WorkDir")
    {
     _p.SetValue(obj, "C://", null);
    }
   }
   MessageBox.Show( mi.Invoke(obj, null).ToString());
  }

你可能感兴趣的:(.net,object,C#,assembly,null,dll)