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