创建类库,并添加新窗体,加入以下方法

public static string setText(string str)
{
return str;
}

编译后把生成的DLL文件放入新项目的bin目录,新项目需要using System.Reflection窗口放入2个button,并添加实现

//通过反射打开Dll窗体
private void button1_Click(object sender, EventArgs e)
{
//dll命名空间名
string dllName = "DllDemo";
//dll类名
string dllClassName = "DllDemo.Form1";
//载入并创建实例转为Form类型
Form frm = Assembly.Load(dllName).CreateInstance(dllClassName) as Form;
frm.ShowDialog();
}
//通过反射调用Dll中的方法
private void button2_Click(object sender, EventArgs e)
{
//dll文件路径
string dllName = "DllDemo";
//dll类名
string dllClassName = "DllDemo.Form1";
//加载dll文件
var assembly = Assembly.Load(dllName);
//获取类
Type type = assembly.GetType(dllClassName);
//创建该类型的实例
object obj = Activator.CreateInstance(type);
//获取该类的方法
string str = type.InvokeMember("setText", BindingFlags.InvokeMethod | BindingFlags.Public | BindingFlags.Static, null, null, new object[] { textBox1.Text }).ToString();
MessageBox.Show(str); //缩写
string returnStr = Assembly.Load(dllName)
.GetType(dllClassName)
.InvokeMember(
"setText"
, BindingFlags.InvokeMethod | BindingFlags.Public | BindingFlags.Static
, null
, null
, new object[] { textBox1.Text } //传入方法参数
)
.ToString();
MessageBox.Show(returnStr); }

最新文章

  1. Atititi.名字 姓名 name 起名naming spec 的构成结构规范v2 qc2.docx
  2. 打包解决方案后,安装时提示只能在IIS5.1以上运行解决方法
  3. C语言第4天循环,流程控制。
  4. Jmeter使用
  5. js案例_下滑列表
  6. 在python中如何设置当前工作目录
  7. JAVA中IO和异常处理练习
  8. 算法起步之A星算法
  9. BZOJ_2588_Spoj 10628. Count on a tree_树剖+主席树
  10. python中线程和进程(一)
  11. Apache Flink中的广播状态实用指南
  12. 996.icu,不加班的程序员有前途吗?
  13. 深入理解CADisplayLink和NSTimer
  14. jquery模拟form表单提交并新打开页面
  15. css美化滚动条
  16. 基于 SOA 概念 RPC 框架 的 消息中心 云部署 设计 漫谈
  17. sql注入case
  18. Servlet (HttpServletResponse)对象
  19. Weblogic读不到Word文件
  20. 【Unity 3D】碰撞检测

热门文章

  1. React Hooks的理解
  2. HCNA Routing&Switching之GVRP
  3. POJ 1190 生日蛋糕题解
  4. RecyclerView跳转到指定位置的几种种方式
  5. Virustotal工具产品初研
  6. alpakka-kafka(6)-kafka应用案例,用户接口
  7. 4 剑指Offer53-在排序数组中查找数字
  8. OpenStack镜像制作笔记 --以windows8.1-amd64为例
  9. idea启动桌面出现三个日志文件解决办法
  10. mapboxgl 互联网地图纠偏插件(三)