我正在为我的应用程序创建一个插件系统,我希望插件公开一个人类可读的名称。该应用程序将显示可用插件的列表,在此列表中名称需要可用。
我想让插件的开发人员非常清楚他们需要做什么才能使他们的插件工作。
目前我正在使插件类实现一个接口,并且该接口需要一个属性“ConsumerName”来实现。但是,这需要主应用程序为每个插件创建一个实例,以便使用 CunsumerName 属性,只是为了显示列表。
public interface IDataConsumer : IDisposable
{
string ConsumerName { get; }
void Consume(DataRowSet rows);
...
}
有没有办法强制插件类提供元数据而不创建每种类型的实例?
我的后备计划是在每个类上使用反射和一些属性,但我不认为属性可以强制使用接口。