【发布时间】:2010-12-05 14:20:08
【问题描述】:
我们构建了一个使用 WCF 服务的静态 dll(具有对 WCF 服务的服务引用)。
静态 dll 具有对进程至关重要的局部静态变量。
DLL 将被不止一种类型的 GUI 使用。
- 一个 WPF 用户控件。
- 独立的 WPF 应用程序
每个人都有十几个客户。
问题:是否可以通过将 dll 放入共享文件夹来为所有客户端使用一个 dll?或者您能推荐其他方法吗?
谢谢。
【问题讨论】:
我们构建了一个使用 WCF 服务的静态 dll(具有对 WCF 服务的服务引用)。
静态 dll 具有对进程至关重要的局部静态变量。
DLL 将被不止一种类型的 GUI 使用。
每个人都有十几个客户。
问题:是否可以通过将 dll 放入共享文件夹来为所有客户端使用一个 dll?或者您能推荐其他方法吗?
谢谢。
【问题讨论】:
如果我错了,请纠正我,但我假设您不仅需要共享同一个 DLL,还需要跨多个客户端共享相同的状态/值。
如果 DLL 由多个客户端在各自的进程中加载,那么它们将不会共享静态信息。
静态状态/变量仅在同一个 AppDomain 内共享。因此,如果您尝试所有这些不同的客户端来访问相同的共享状态,那么从共享位置加载 DLL 将无济于事。
在多个应用程序中使用共享信息的一种解决方案是让服务(可能是 WCF)提供共享状态。
【讨论】:
【讨论】:
我不完全确定您所说的“静态 DLL”是什么意思。从语言上讲,这是矛盾的(DLL 的意思是“动态链接库”)。如果您指的是静态链接之类的东西,那么 .NET (AFAIK) 不直接支持这种东西。
【讨论】: