我在.NET 2.0中使用Domain Driven Design编写了一个程序,我正在尝试为它实现一个插件框架。
我已经实现了几种类型的插件:
域名插件
服务插件
如您所见,某些插件触及每一层架构。您可以说域插件是微型应用程序,它们仅依赖于主应用程序来提供运行的框架。最终目标是让用户只购买和下载他们需要的插件。我首先将它们写成静态依赖项,因为我没有实现动态加载它们的机制。现在我正试图解决动态加载问题。
我正在尝试使用IoC容器来管理依赖项,但我很难找到如何查找和加载插件。除了每个插件公开给主应用程序的接口之外,每个插件的类也有自己的接口,用于彼此通信。
我正在使用Castle Windsor作为我的IoC容器,并希望在应用程序和每个插件中利用其自动装配功能。
我如何:
如果你认为我正在以错误的方式解决这个问题,请随意说出来。我还有时间在截止日期前更改设计。
答案 0 :(得分:3)
我注意到我确实完全了解你,但考虑看MEF(http://mef.codeplex.com/)
答案 1 :(得分:3)
您可以使用Managed Extensibility Framework之类的东西在运行时发现和枚举插件。然后,插件可以在发现它们时使用您的IoC容器注册必要的类型。