我正在尝试为应用程序编写插件。我唯一得到的是一个定义接口的 dll 资源文件;这是代码:
using System;
using System.Drawing;
namespace App.Plugin.Resources.Interface
{
public interface IAppPlugin
{
string Name { get; set; }
string Description { get; set; }
string Author { get; set; }
string Version { get; set; }
Icon MenuIcon { get; set; }
EventHandler PluginEventHandler { get; set; }
}
}
然后我创建了一个实现这个接口的类,让它显示一个消息框,编译 dll,把它放在应用程序的 Plugins 文件夹中,当应用程序执行并启动插件时,它确实显示了消息。
在我看来,该软件提供了执行外部代码的方法(通过插件系统),但实际上并没有提供对任何应用程序属性或方法的访问权限。
考虑到上述情况,我的问题是:我是否能够使用给定的资源以任何其他方式与主机进程交互(例如,在选择菜单项时获得通知,甚至自己将菜单项添加到主 GUI)或这样做插件系统只是充当应用程序启动器(通过执行我提供的 dll 中的代码)?