插件接口上的初始化方法

本文关键字:初始化 方法 接口 插件 | 更新日期: 2023-09-27 18:19:25

我有以下插件接口:

public interface IPlugin
{
    IInitializedPlugin Initialize(PluginInitialization pluginInitialization);
}

应用程序可以获得IPlugin实例(在这种情况下从IOC容器),但要获得IInitializedPlugin实例,它必须调用Initialize方法。PluginInitialization结构简单,可配置插件。然后IInitializedPlugin具有实际的插件功能。如何改进这个设计?

插件接口上的初始化方法

你的设计肯定可以工作,PRISM (微软桌面应用程序框架)使用类似的方法来初始化模块,然而,如果你正在使用。net进行开发,我会考虑使用MEF (托管可扩展性框架)来实现这一点,因为使用特定的IoC容器会将插件与特定的容器耦合,您可以通过阅读Mark Seemann在这篇文章中的第四条评论了解更多。