【问题标题】:Sharing a static dll between WCF client apps在 WCF 客户端应用程序之间共享静态 dll
【发布时间】:2010-12-05 14:20:08
【问题描述】:

我们构建了一个使用 WCF 服务的静态 dll(具有对 WCF 服务的服务引用)。

静态 dll 具有对进程至关重要的局部静态变量。

DLL 将被不止一种类型的 GUI 使用。

  1. 一个 WPF 用户控件。
  2. 独立的 WPF 应用程序

每个人都有十几个客户。

问题:是否可以通过将 dll 放入共享文件夹来为所有客户端使用一个 dll?或者您能推荐其他方法吗?

谢谢。

【问题讨论】:

    标签: c# wcf dll static service


    【解决方案1】:

    如果我错了,请纠正我,但我假设您不仅需要共享同一个 DLL,还需要跨多个客户端共享相同的状态/值。

    如果 DLL 由多个客户端在各自的进程中加载​​,那么它们将不会共享静态信息。

    静态状态/变量仅在同一个 AppDomain 内共享。因此,如果您尝试所有这些不同的客户端来访问相同的共享状态,那么从共享位置加载 DLL 将无济于事。

    在多个应用程序中使用共享信息的一种解决方案是让服务(可能是 WCF)提供共享状态。

    【讨论】:

    • 谢谢,答案很详尽。
    【解决方案2】:

    【讨论】:

      【解决方案3】:

      我不完全确定您所说的“静态 DLL”是什么意思。从语言上讲,这是矛盾的(DLL 的意思是“动态链接库”)。如果您指的是静态链接之类的东西,那么 .NET (AFAIK) 不直接支持这种东西。

      【讨论】:

      • 公共静态类 DLLClassName() { ... }
      • 你的意思是你正在使用静态类。不过,这不会改变你得到什么样的程序集。
      猜你喜欢
      • 2011-01-29
      • 2011-01-30
      • 2010-12-26
      • 2018-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-22
      • 1970-01-01
      相关资源
      最近更新 更多