通读这篇 MSDN 文章http://msdn.microsoft.com/en-us/library/dd460648.aspx我看到有人声称 MEF 对程序集没有硬依赖。我不确定这意味着什么,因为即使合同是字符串,MEF 仍然按字符串解析,然后按类型解析。所以宿主程序集和扩展程序集都需要对契约程序集的引用。这不是硬依赖吗?
托管可扩展性框架或 MEF 是一个用于创建轻量级、可扩展应用程序的库。它允许应用程序开发人员无需配置即可发现和使用扩展。它还让扩展开发人员可以轻松地封装代码并避免脆弱的硬依赖。MEF 不仅允许在应用程序内重用扩展,还允许跨应用程序重用。
最后,组件开发人员必须接受对包含他们实现的接口的程序集的硬依赖。这使得一个组件很难在多个应用程序中使用,并且在为组件创建测试框架时也会产生问题。
因为 MEF 模型不需要对特定应用程序程序集的硬依赖,它允许在应用程序之间重用扩展。这也使得开发独立于应用程序的测试工具来测试扩展组件变得容易。
谁可以给我解释一下这个?也许我误解了硬依赖到底是什么?