我正在嘗試編寫應用程序的插件。我唯一提供的是一個dll資源文件,它定義了一個接口;下面的代碼:C#插件實現查詢
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,把它放在應用程序的插件文件夾,當應用程序執行,並推出了插件,它確實顯示了該消息。
在我看來,該軟件提供了執行外部代碼(通過插件系統)的手段,但實際上並不允許訪問任何應用程序的屬性或方法。
考慮到上述情況,我的問題是:我能否以任何其他方式與主機進程交互(例如,當選擇菜單項時獲得通知,或者甚至自己將菜單項添加到主GUI)給定的資源或這個插件系統只是作爲一個應用程序啓動器(通過執行我提供的DLL中的代碼)?
您是否嘗試過在您的PluginEventHandler實現中進行突破?我會從這裏開始,看看它是否被調用了什麼數據。 – 2012-08-07 11:52:40
你插入什麼應用程序? – 2012-08-07 11:53:12
我會問那個讓你插入應用程序的人 - 沒有告訴我們這是我們不太可能知道的應用程序;-) – Bridge 2012-08-07 11:54:15