gpt4 book ai didi

enterprise-library - MEF、EntLib 和 Prism 之间的区别

转载 作者:行者123 更新时间:2023-12-04 16:56:16 25 4
gpt4 key购买 nike

我有一个相对基本的问题,但最重要的是真的需要一些清晰,我一直在使用 Prism(复合应用程序指南)在 C# 中创建一个 WPF MVVM 桌面应用程序,这一点我都很清楚(或者我认为)使用 IoC 和基于模块的架构等。同时我已经开始使用 MEF 并意识到两者之间存在一种灰色区域(我发现并阅读了许多关于在 IoC 容器中托管 MEF 扩展的文章/博客和类似。

但是....最近我开始研究 Enterprise Library 5,这就是导致我困惑的原因。它们在哪里组合在一起?所以 Prism 将 DI 与基于模块的架构一起使用……EntLib 将 Di 与应用程序 block 类型的架构一起使用……而 MEF 根本不使用 DI?这是否意味着 EntLib 和 Prism 是完全独立的架构方法,或者一个是另一个的子集? MEF 也可以与其中一个/两个一起使用吗?

任何解释都将受到欢迎。

非常感谢

最佳答案

我也对 IoC 和 MEF 之间的区别感到困惑。我发现描述它们的最简单方法是:

MEF 用于发现和实例化你不知道的东西。

IoC 用于请求您确实知道的事情。

一点上下文。 MEF 将始终实例化您至少一次请求的导入。您无法自己创建它,并将其放入目录中以供使用。 MEF 负责创建和满足导入。动态加载的 DLL,您不知道哪些 DLL 到达,就是一个很好的例子。

另一方面,IoC - 你从当前库中请求一个实现,你得到了一个。但您也有责任确保实现存在。

IoC 用于依赖注入(inject)。 MEF 是为了可扩展性。

关于enterprise-library - MEF、EntLib 和 Prism 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4152627/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com