插件接口上的初始化方法

时间:2013-06-22 15:09:55

标签: c# design-patterns plugins inversion-of-control

我有以下插件接口:

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

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

1 个答案:

答案 0 :(得分:0)

您的设计确实可以正常工作,PRISM (Microsoft桌面应用程序框架)使用类似的方法初始化模块,但是如果您使用.NET进行开发,我会考虑使用MEF (托管扩展性框架),因为使用某个IoC容器会将插件与特定容器耦合,您可以通过{{3}阅读第四条评论来了解更多相关信息。在这个Mark Seemann