gpt4 book ai didi

c# - 根据 C# 中的实例化类,利用不同的依赖项

转载 作者:行者123 更新时间:2023-11-30 18:28:20 24 4
gpt4 key购买 nike

情况是这样的:

  1. 我有 2 个由 2 个不同的公司提供的 SDK 库 (dll)
  2. 两者都使用相同的第三方 dll 作为这些 SDK 的依赖项
  3. 每个公司使用的dll版本不同
  4. 我的代码需要根据用户输入实例化其中一个 dll。永远不需要在同一次运行中实例化两者。
  5. 没有办法要求公司使用相同版本的第三方dll。

现在,我正在删除依赖项并在不同的时间编译代码 2 次。并强制用户在安装时选择使用哪一个。

我想检查一下是否可行:

  1. (最好)动态加载对运行时的依赖 - 取决于实例化的类。或者如果不可能:
  2. 包含一个编译时指令来选择不正确的依赖项

请注意,有问题的 dll 是一级依赖项所需的二级依赖项。所以我可能需要动态加载两者(我猜)

最佳答案

如果共享的第三方 dll 是强签名的,并且更高版本与早期版本兼容,您可以使用 assembly redirect policy在 .config 文件中始终使用最新版本。

即与 Json.Net 库一起工作良好(强签名,可以使用更高版本而不是更早版本一次)

文章示例:

 <dependentAssembly>
<assemblyIdentity name="someAssembly" publicKeyToken="32ab4ba45e0a69a1"/>
<bindingRedirect oldVersion="7.0.0.0" newVersion="8.0.0.0" />
</dependentAssembly>

关于c# - 根据 C# 中的实例化类,利用不同的依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25190138/

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