2010-07-07 47 views
0

我有两个silverlight组件。 在程序集1中,我实现了一个接口ISnProvider。 在汇编2中,我有一个实现ISnProvider的具体类。 我打算让更多的程序集包含不同的ISnProvider实现。 程序集1没有对程序集2的引用。在silverlight中使用IOC容器来动态加载程序集。这可能吗?

当我的silverlight应用程序启动时,我想使用IOC容器来解析ISnProvider接口。理想情况下,我不必重新编译我的应用程序以使用不同的提供程序。我不想在我的程序集1中硬编码'assembly2.dll'。

哪个IOC容器将允许我使用silverlight动态加载这些程序集?

谢谢!

圣地亚哥

回答

1

你可能想看看托管扩展框架(MEF)从微软。这肯定会支持您的场景(example here),但不幸的是您需要在代码中的各个位置使用属性(例如[导入]/[导出])。

Autofac is available in a Silverlight version我肯定会推荐它用于Silverlight的一般IOC使用,但我从来没有试图让它动态加载程序集而没有直接引用,我不确定它是否会支持Silverlight(I倒是喜欢听到的话,任何人都已经做到了这一点与Autofac)

你也可以使用一个半人工的方法 - 在Silverlight 动态加载的程序集,而不的IOC容器的here's an example,这可能会或可能不会有用您。

+0

Steve, 谢谢。我已阅读你所建议的MEF示例,它肯定会起作用并解决我的问题。我甚至没有考虑过MEF。 我会给它一个镜头! 谢谢! – santiagoIT 2010-07-08 20:17:04

+0

对于任何有兴趣的人,我使用MEF,我喜欢它!精彩的工作! 感谢您的提示! – santiagoIT 2010-07-09 19:39:13

相关问题