我有多个 DLL(我自己管理或我自己不管理),我想将它们包含在 CoreLib.dll 中,这样我就不必在每个使用这些 DLL 的应用程序中包含(可能)数百个 DLL。我通过直接引用 DLL 来包含 DLL。
因此,我还想在我正在创建的应用程序中实例化在这些 DLL 中声明的类。尽管我愿意,但我无法执行 MyApp.exe 项目中所示的操作。 CoreLib 中没有对 A、B 或 C 的引用。
我怎样才能完成我想要的事情?
编辑
我按照建议使用了外观模式,但是出现了编译错误。它说我必须将 A.dll 包含在 MyApp 项目中。为什么?这就是我想避免的。有什么办法解决这个问题吗?
我认为这是不可能的。在 CorLib 中添加对 A、B 和 C DLL 的引用仅意味着 CorLib 引用这些 DLL(AssemblyRef 元数据表将为每个程序集拥有一条记录)。这并不意味着 CorLib 重新定义程序集和引用程序集的任何类型。在 MyApp.exe 中,您需要引用 A、B 和 C 程序集。
另一种解决方案是在 CorLib 中定义 Facade 类并将调用重定向到 A、B 和 C DLL。在 MyApp.exe 中,您将使用 Facade 类。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)