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 ) ;
}
}
查看全文
相关阅读:
java.lang.ClassNotFoundException: org.springframework.web.util.IntrospectorCleanupListener
ElasticSearch读取查询结果(search)
Oracle合并某一列
Django在Eclipse下配置启动端口号
Apache部署django项目
Apache的下载安装(主要说的 64位)及问题
windows7下怎样安装whl文件(python)
windows下面安装Python和pip终极教程
Java 多线程 并发编程 (转)
数据库水平切分的实现原理解析——分库,分表,主从,集群,负载均衡器(转)
原文地址:https://www.cnblogs.com/tonybinlj/p/1297904.html
最新文章
[OpenSource]浅谈.Net和Java互相调用的三种方式
IKVM
彻底解决:请求被中止: 未能创建 SSL/TLS 安全通道
C#创建https请求并使用pfx证书
c#调用带有安全认证的java webservice
一例胜千言,详谈SQL Sever数据库锁
浅谈MS-SQL锁机制
window 效率神器:Wox
敏捷个人
IntelliJ IDEA 、genymotion模拟器、Android开发环境搭建
热门文章
karma + phantom + mocha + sion + chai + nightwatch + selenium2(webdriver) 测试框架学习
德州扑克
js 排序
php SSL certificate problem: unable to get local issuer certificate
js 温故而知新 webkitTransitionEnd 监听Transition动画结束事件
css 温故而知新 select-option 文字方向居右
javascript 温故而知新 getBoundingClientRect
SQL中Merge的用法
TransportClient操作详解
elasticsearch 5.0 获取 TransportClient 操作客户端java API
Copyright © 2011-2022 走看看