zoukankan
html css js c++ java
开发c#插件步骤
开发c#插件步骤
//
1 定义插件接口,将其编译成 dll,例如:
using
System;
namespace
PluginInterface
{
public
interface
IShow
{
string
Show() ;
}
}
//
2 编写插件. 新建dll工程,并引用第一步做的dll插件,实现其接口,例如:
namespace
PluginA
{
public
class
PluginA : PluginInterface.IShow
{
public
string
Show()
{
return
"
I am plugin A
"
;
}
}
}
收集程序集:
//
3. 在指定目录下寻找Dll文件
private
void
frmMain_Load(
object
sender, System.EventArgs e)
{
//
获取Plugins目录中所有的DLL文件,并保存在combo中
try
{
string
path
=
Application.StartupPath ;
path
=
System.IO.Path.Combine(path,
"
Plugins
"
) ;
foreach
(
string
file
in
System.IO.Directory.GetFiles(path,
"
*.dll
"
))
{
this
.cmbPlugins.Items.Add(file) ;
}
}
catch
(Exception ex)
{
MessageBox.Show(ex.Message ) ;
}
}
使用插件
private
void
btnExecute_Click(
object
sender, System.EventArgs e)
{
try
{
//
1. 获得 文件名称
string
asmFile
=
this
.cmbPlugins.Text ;
string
asmName
=
System.IO.Path.GetFileNameWithoutExtension(asmFile) ;
if
( asmFile
!=
string
.Empty )
{
//
2. 利用反射,构造DLL文件的实例
System.Reflection.Assembly asm
=
System.Reflection.Assembly.LoadFrom(asmFile) ;
//
3. 利用反射,从程序集(DLL)中,提取类,并把此类实例化
PluginInterface.IShow iShow
=
(PluginInterface.IShow)
System.Activator.CreateInstance(asm.GetType(asmName
+
"
Namespace.
"
+
asmName
+
"
Class
"
)) ;
//
4. 在主程序中使用这个类的实例
this
.label2.Text
=
iShow.Show();
}
}
catch
( Exception ex )
{
MessageBox.Show(ex.Message ) ;
}
}
查看全文
相关阅读:
正则 匹配 HTML 标签
webpack 打包图片 能否提高加载速度
禁止手机浏览器左右滑屏 后退 前进
Objective-C--@property,@synthesize关键字介绍
ios--绘图介绍
iOS--为视图添加阴影
iOS--iOS7摄像头识别二维码功能
iOS--日历事件的获取和添加
iOS-#ifdef DEBUG代码块介绍
如何将你的程序打包成ipa
原文地址:https://www.cnblogs.com/tonybinlj/p/1297904.html
最新文章
【JavaSE】字符编码和存储编码
【JavaSE】类与类的关系--UML
【PS】证件照修改尺寸
【PS】证件照转换背景色
【Spring】(1)-- 概述
helper.js(20180411)
html中嵌入VLC播放器
不同服务器数据库之间的数据操作
发送邮件
ffmpeg下载安装和简单应用(C#音频格式转换)
热门文章
HTTP请求
Sql Server 数据类型与 C# 数据类型对照
HTTP请求方法
Unix时间戳转换
fullCalendar 日历插件
正则表达式 环视 逗号分隔数字
原生js 保存图片到本地
精通正则表达式 笔记
apache 重定向
angularjs 阻止浏览器自带的回退
Copyright © 2011-2022 走看看