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

2024-04-06

我有多个 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(使用前将#替换为@)

如何通过另一个 DLL 访问一个 DLL 中的命名空间? 的相关文章

随机推荐

  • 这个属性的作用是什么:MethodImplOptions.NoInlined(或者:什么是“内联”方法)[重复]

    这个问题在这里已经有答案了 可能的重复 C 中的内联函数 https stackoverflow com questions 473782 inline functions in c 什么是方法内联 https stackoverflow
  • Spark时间戳差异

    我正在尝试在 Spark 中进行时间戳差异 但它没有按预期工作 下面是我正在尝试的方法 import org apache spark sql functions df df withColumn TimeStampDiff from un
  • Bootstrap 4 .nav-link 填充

    我想删除第一个的左侧填充 nav link in navbar nav 这是一个example https i stack imgur com m3XK7 png 在 bootstrap 4 中 我创建了一个导航并给了填充 nav link
  • 比较两个托管引用

    是否可以比较两个托管引用 类型为ref T 如果它们相等 我的意思不是对对象的引用 而是对变量的引用 例子 public static bool Compare ref int a ref int b return ref a ref b
  • 使用 YAML 转储 unicode

    我正在从 csv 创建 yaml 文件 其中包含很多 unicode 字符 但我似乎无法让它转储 unicode 而不会给我一个解码错误 我正在使用ruamel yaml图书馆 UnicodeDecodeError ascii codec
  • 删除功能不起作用

    我正在开发一个应用程序 它有一个启动屏幕 可以下载几个文件 在文件开始下载之前 我想检查文件是否已经存在 如果存在 我想删除它们 下面显示的代码包含正确的文件路径 并且检查文件是否存在的函数似乎与 Logcat 中读出的状态 文件已删除 一
  • gulp.dest 未创建目标文件夹

    我的 gulp 代码部分如下所示 gulp src application base js application base assets js base pipe gulpPlumber errorHandler function err
  • watchOS 3 SpriteKit 中的触摸事件?

    在watchOS 3中使用SpriteKit时 如何处理触摸事件 我正在从 iOS 移植 SpriteKit 游戏 下面的代码不起作用 或者你必须以某种方式控制 WKInterfaceController override func tou
  • Apache 上 Django 应用程序的 POST/GET 请求日志

    Django 开发服务器非常好 它实时显示所有 POST GET 请求以及其他事件的日志 来自 Django 开发服务器的日志示例 04 Jul 2012 19 23 27 GET static images sprites submit
  • 根据所选单选按钮显示控件

    我有一组三个单选按钮 根据选择的单选按钮 我想显示三个控件之一 文本框 下拉列表或按钮 如何根据所选单选按钮的结果显示控件 您可以使用以下方法将控件的可见性绑定到 RadioButton 的 IsChecked 属性 BooleanToVi
  • 如何在 Android 中暂停和恢复录音

    我正在使用 MediaRecorder 类开发音频录制应用程序 我有以下要求 1 按下暂停按钮则暂停录音 2 按下恢复按钮后 从暂停处恢复录制 我试试这个link https stackoverflow com questions 5743
  • 使累计总和更快

    我正在尝试计算矩阵每一列的累积和 这是我的 R 代码 testMatrix matrix 1 65536 ncol 256 microbenchmark apply testMatrix 2 cumsum times 100L Unit m
  • C++ for every in 自定义集合

    所以自从它推出以来我就一直很喜欢for each在要迭代的关键字中STL collections 我是语法糖的超级粉丝 我的问题是如何编写可以使用这些关键字迭代的自定义集合 本质上 我需要公开什么 APi 才能使用这些关键字来迭代我的集合
  • 设置分层绘图的大小?

    我正在为我的应用程序制作一个图标 该应用程序基本上是一个朋友查找器 我正在创建一个看起来很像谷歌纬度图标的叠加层 我有一个因用户而变化的图像 并且我有边框 我已经能够很好地进行分层绘制和叠加 但问题是 图像拉伸到边框的大小 这是一个问题 因
  • 当应用程序进入后台时如何停止运行?

    我正在尝试建立一个可运行的程序 它可以每 5 秒间隔加载一次广告 当然 5 秒太快了 这只是为了测试目的 这是我的代码 package com admobsdk dfp handler import com google ads impor
  • 正则表达式从路径中删除文件名

    如何设计一个 RegEx 脚本来从路径中删除文件名 诀窍在于 道路上有各种各样的扳手需要投入工作 路径可以包括 1 Folder1 Folder2 Folder3 1234 folder4 5678 ApplesandOranges txt
  • 构造函数不能是虚拟的

    在其中之一互联网上的 C 教程 http www bogotobogo com cplusplus constructor php 我发现了下面关于为什么构造函数不能是虚拟的描述 我们不能声明虚拟构造函数 我们应该指定准确的 编译时对象的类
  • Leaflet R 大地图的性能问题

    我想知道是否有其他人在使用 R 中的传单包绘制大量标记和多边形时遇到类似的问题 这通常应该是这样的 但是 当我放大 缩小地图时 多边形和标记显然不合适 或者您可以说底图没有正确调整 下面包含一个示例 当我绘制较小的区域或几个标记时 我不会遇
  • Typescript 事件监听器 - 类型到 props 映射

    export enum GameEventType EVENT ONE event one EVENT TWO event two EVENT THREE event three export type GameEvent type Gam
  • 如何通过另一个 DLL 访问一个 DLL 中的命名空间?

    我有多个 DLL 我自己管理或我自己不管理 我想将它们包含在 CoreLib dll 中 这样我就不必在每个使用这些 DLL 的应用程序中包含 可能 数百个 DLL 我通过直接引用 DLL 来包含 DLL 因此 我还想在我正在创建的应用程序