c# 反射---简单小例子
来源:互联网 发布:神仙水 去痘印 知乎 编辑:程序博客网 时间:2024/05/22 04:46
c# 反射---简单小例子
/////接口
using System;
usingSystem.Text;
namespaceJiang.IForm
{
/// <summary>
///反射要实现该接口
/// </summary>
public interfaceIForm
{
/// <summary>
///form test
/// </summary>
stringFormName
{ get; set; }
/// <summary>
///Run appliction
/// </summary>
voidRun();
}
}
以下是实现接口的类
using System;using System.Drawing;using System.Text;using System.Windows.Forms;using Jiang.IForm;namespace RefLibraryUser{ public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { Close(); } } public class Progarm:IForm { private string formname;
///设置窗体名称 public string FormName { get { return formname; } set { formname = value; } }
///运行程序 public void Run() { Form1 f1 = new Form1(); f1.Text = this.FormName; f1.Show(); } }}///要反射的dll文件 string files = Application.StartupPath + (@"\Plug-In\abc.RefLibraryUser.dll"); ///加载dll文件 Assembly assembly = Assembly.LoadFile(files); ////获取程序中的类型 Type[] t = assembly.GetTypes(); foreach (Type ty in t) { if (ty.GetInterface("IForm") != null)///检查是否实现IForm该接口 { /////创建实例 IForm f = (IForm)Activator.CreateInstance(ty); f.FormName = "插件窗体";///设置反射程序中的名称 f.Run();//运行此反射程序 break;////为了提高运行效率(因为一个程序里我只有一个实现了这个接口,所以我找到一个就够了)。 } }
主程序,反射dll文件
///要反射的dll文件
stringfiles = Application.StartupPath + (@"\Plug-In\abc.RefLibraryUser.dll");
///加载dll文件
Assemblyassembly = Assembly.LoadFile(files);
////获取程序中的类型
Type[] t = assembly.GetTypes();
foreach(Typety int)
{
if(ty.GetInterface("IForm") != null)///检查是否实现IForm该接口
{
/////创建实例
IFormf = (IForm)Activator.CreateInstance(ty);
f.FormName = "插件窗体";///设置反射程序中的名称
f.Run();//运行此反射程序
break;////为了提高运行效率(因为一个程序里我只有一个实现了这个接口,所以我找到一个就够了)。
}
}
- c# 反射---简单小例子
- c# 反射---简单小例子
- C#反射简单例子
- c# 反射简单用法例子
- C#反射(简单例子)
- 简单java反射,小例子,仅供参考
- C#窗体间传值简单小例子
- C# 关于反射类[System.Reflection]的一个小例子
- 反射小例子
- java反射小例子
- java反射小例子
- java 反射小例子
- Java反射小例子
- java反射小例子
- c#反射入门例子
- C#反射例子
- c#反射用法例子
- C#反射属性例子
- vc读取文件,修改写入,保存文件
- jquery ajax 传数据到后台乱码的处理方法
- 集体智慧编程学习笔记--搜索引擎
- c# remoting 小实例
- The command ("dfs.browser.action.delete") is undefined 解决Hadoop Eclipse插件报错
- c# 反射---简单小例子
- java实现 SSL双向认证
- jQuery、prototype、mootools、YUI Extjs 框架比较
- Chessboard(二分匹配)
- IntelliJ IDEA 14 值得你弃用Eclipse的IDE神器
- MacStore更新Xcode时提示帐户不对,更换帐户方法
- 一键安装Redmine
- 单点登录系统
- LeetCode Search in Rotated Sorted Array II