gpt4 book ai didi

c# - 如何通过另一个 DLL 访问 DLL 中的命名空间?

转载 作者:行者123 更新时间:2023-11-30 16:21:59 25 4
gpt4 key购买 nike

我有多个 DLL(我自己管理或不自己管理),我想将它们包含在 CoreLib.dll 中,这样我就不必在使用这些 DLL 的每个应用程序中包含(可能)数百个 DLL。我将 DLL 包含在直接指向 DLL 的引用中。

因此,我还想实例化在我正在创建的应用程序中的那些 DLL 中声明的类。我无法执行 MyApp.exe 项目中的图片,即使我愿意。 CoreLib 中没有对 A、B 或 C 的引用。

enter image description here

我怎样才能完成我想要的?

编辑我按照建议使用了 Facade Pattern,但是我遇到了编译错误。它说我必须在 MyApp 项目中包含 A.dll。为什么?这是我想避免的。有什么办法解决这个问题吗?

enter image description here

最佳答案

我认为这是不可能的。在 CorLib 中添加对 A、B 和 C DLL 的引用将仅意味着 CorLib 引用这些 DLL(AssemblyRef 元数据表将为每个程序集提供一条记录)。这并不意味着 CorLib 重新定义程序集和任何类型的引用程序集。在 MyApp.exe 中,您需要引用 A、B 和 C 程序集。

另一种解决方案是在 CorLib 中定义一个 Facade 类并将调用重定向到 A、B 和 C DLL。在 MyApp.exe 中,您将使用 Facade 类。

关于c# - 如何通过另一个 DLL 访问 DLL 中的命名空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12826084/

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