アプリケーションのプラグインを作成しようとしています。提供されているのは、インターフェイスを定義する 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 のコードを実行することによって) アプリケーション ランチャーとして機能しますか?