【问题标题】:Using IOC container in silverlight to dynamically load assembly. Is this possible?在 silverlight 中使用 IOC 容器动态加载程序集。这可能吗?
【发布时间】:2010-07-07 18:12:47
【问题描述】:

我有两个 Silverlight 组件。 在程序集 1 中,我实现了一个接口 ISnProvider。 在程序集 2 中,我有一个实现 ISnProvider 的具体类。 我计划拥有更多包含 ISnProvider 不同实现的程序集。 程序集 1 没有引用程序集 2。

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

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

谢谢!

圣地亚哥

【问题讨论】:

    标签: silverlight ioc-container


    【解决方案1】:

    您可能想查看 Microsoft 的托管可扩展性框架 (MEF)。这肯定会支持您的方案 (example here),但不幸的是,这确实意味着您需要在代码的不同位置使用属性(例如 [Import] / [Export])。

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

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

    【讨论】:

    • 史蒂夫,谢谢。我已经阅读了您建议的 MEF 示例,它肯定会起作用并解决我的问题。我什至没有考虑过 MEF。我会试一试!谢谢!
    • 对于任何感兴趣的人,我使用了 MEF,我喜欢它!工作出色!感谢您的提示!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-14
    • 2011-12-29
    • 1970-01-01
    相关资源
    最近更新 更多