gpt4 book ai didi

c# - 需要 2 个来自外部供应商的 dll 的静态类副本

转载 作者:太空狗 更新时间:2023-10-30 00:40:42 24 4
gpt4 key购买 nike

作为我们应用程序的一部分,我们正在使用外部供应商的 dll 与他们进行通信。这个 dll 有一个静态类,其中包括一些属性,这些属性确定用于连接到供应商的帐户(凭据)。但是,我们的应用程序需要根据代码路径使用两个不同的帐户进行连接。这很好(我们只需在每次连接之前设置正确的帐户),但问题是我们还需要将事件处理程序绑定(bind)到供应商的事件(也在这个静态类中)并且事件处理程序需要响应为每个帐户触发的事件。拥有静态类的一个副本意味着只有来自当前连接的帐户的事件才会被提取。

我知道这不是一个好的设计(如果由我决定,供应商的类将被实例化两次,每个帐户一次),但我们无法控制供应商如何设计他们的 dll,他们是不会改变它。

似乎让事件处理程序监视两个帐户的事件的唯一方法是拥有我们的应用程序的两个副本,但这真的很难看。有没有办法以某种方式从我们的项目中引用两个 dll 副本?或者有什么其他方法可以解决这个问题?

最佳答案

您可以使用 AppDomains 实现您的需求。静态实例不跨 AppDomain 边界共享。您可以编写代码来订阅来自不同应用程序域的事件,但远程处理有一些复杂性。查看这些问题和答案以获取更多信息:

What is a .NET application domain?

How can I subscribe to an event across AppDomains (object.Event += handler;)

关于c# - 需要 2 个来自外部供应商的 dll 的静态类副本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25147144/

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