我有两个silverlight组件。 在程序集1中,我实现了一个接口ISnProvider。 在程序集2中,我有一个实现ISnProvider的具体类。 我计划有更多的程序集,它们将包含不同的ISnProvider实现。 装配1没有参考装配2。
当我的silverlight应用程序启动时,我想使用IOC容器解析ISnProvider接口。理想情况下,我不必重新编译我的应用程序以使用不同的提供程序。我不想在程序集1中硬编码'assembly2.dll'。
哪个IOC容器允许我使用silverlight动态加载这些程序集?
谢谢!
圣地亚哥
答案 0 :(得分:1)
您可能希望了解Microsoft的托管扩展性框架(MEF)。这肯定会支持您的方案(example here),但不幸的是,您需要在代码中的不同位置使用属性(例如[导入] / [导出])。
Autofac is available in a Silverlight version我肯定会推荐它用于Silverlight的一般IOC使用但是我从未试图让它动态加载没有直接引用的程序集,我不确定它是否会支持Silverlight(我很想知道是否有人通过Autofac完成了这项工作)
您还可以使用半手动方法 - here's an example在Silverlight 中动态加载程序集,而不使用 IOC容器,这可能对您有用,也可能没用。