在silverlight中使用IOC容器来动态加载程序集。这可能吗?

时间:2010-07-07 18:12:48

标签: silverlight ioc-container

我有两个silverlight组件。 在程序集1中,我实现了一个接口ISnProvider。 在程序集2中,我有一个实现ISnProvider的具体类。 我计划有更多的程序集,它们将包含不同的ISnProvider实现。 装配1没有参考装配2。

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

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

谢谢!

圣地亚哥

1 个答案:

答案 0 :(得分:1)

您可能希望了解Microsoft的托管扩展性框架(MEF)。这肯定会支持您的方案(example here),但不幸的是,您需要在代码中的不同位置使用属性(例如[导入] / [导出])。

Autofac is available in a Silverlight version我肯定会推荐它用于Silverlight的一般IOC使用但是我从未试图让它动态加载没有直接引用的程序集,我不确定它是否会支持Silverlight(我很想知道是否有人通过Autofac完成了这项工作)

您还可以使用半手动方法 - here's an example在Silverlight 中动态加载程序集,而不使用 IOC容器,这可能对您有用,也可能没用。