我正在爲我的應用程序創建一個插件系統,我希望插件公開一個人類可讀的名字。應用程序將顯示可用插件的列表,在此列表中名稱需要可用。給插件類一個人類可讀的名字
我想讓插件的開發人員清楚他們需要做什麼來使他們的插件工作。
目前我正在使插件類實現一個接口,並且該接口需要實現一個屬性「ConsumerName」。但是,這需要主應用程序創建每個插件的實例,才能使用CunsumerName屬性,以顯示列表。
public interface IDataConsumer : IDisposable
{
string ConsumerName { get; }
void Consume(DataRowSet rows);
...
}
有沒有什麼辦法強制插件類提供元數據而不創建每種類型的實例?
我的回退計劃是在每個類上使用反射和某些屬性,但我不認爲可以強制使用接口的屬性。
您應該從配置文件中讀取該插件的名稱,該配置文件將與該插件一起提供。 – Guillaume 2013-03-11 12:39:14