利用反射动态加载插件的简单例子[xgluxv]

本文介绍了一个基于.NET的可扩展应用程序示例,通过动态加载DLL实现插件化功能。主程序通过反射提取插件中的IToolBarProvider和IMenuProvider接口信息,将其整合到主窗口的菜单和工具栏中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近想学习一下.net window form的编程知识,在ms的网站上浏览的时候看到一个 可扩展程序的例子,就是可以动态加载一个个dll,使之在主窗口中可以看到并获取dll的功能。我把代码修改了一下,好像条例更清楚一点了 :)
这里提供源代码
代码里有三个项目
ExtensiableApi:定义了两个接口,一个纯虚类,在ExtensionAPI.cs文件里,IToolBarProvider,IMenuProvider,DocumentForm 这个项目 无论是主程序还是插件在实现时必须都要引用,主程序就是依靠这些接口和类把插件里的信息提取出来,相应的也之后实现了这些接口和类的项目,才能作为我们这个程序的插件使用。

ExtensiableApp:项目里 ExtensibleAppForm 是主程序的窗口,他会把插件里实现的IToolBarProvider,IMenuProvider作为他的菜单项和工具栏里的项,而把实现类DocumentForm 作为菜单里New项的一个子项。本项目的核心其实都在PluginManager.cs中,里面实现了如何创建一个临时的domain,如何利用反射动态提取插件里的内容,如果实例化反射出来的类。需要重点看一下。

Example1:简单实现了ExtensiableApi里的接口和类的例子。

转载于:https://www.cnblogs.com/dotLive/archive/2006/09/18/507689.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值