c# - 替代非 ASP.NET 特定的全局静态数据
问题描述
我正在开发一个由 WinForms 应用程序、一组 XML Web 服务和一组 WCF 服务组成的遗留系统。每个应用程序都是“内部”的 3 层,因为业务和数据逻辑被分解为单独的程序集,但“外部”是整体的,因为所有 3 个程序集都由每个应用程序加载到它们自己的应用程序域中。
WinForms 应用程序必须先出现,因为内部设计充满了跨越层边界的全局静态数据。其中最明显的坏处是登录的用户信息。前端应立即“登录”用户,然后数据在每次数据库读取和写入时使用该信息。
这在 WinForms 应用程序中“工作正常”,但在 Web 服务中崩溃并不奇怪,因为并行传入的请求会压倒彼此的静态数据,并且开始发生非常糟糕的事情。到目前为止,我已经找到了许多在 ASP.NET 级别跟踪全局数据的选项,但它们都依赖于 ASP.NET 特定的对象,例如Session
or HttpContext
,我不能使用这些对象。这也需要在 WinForms 应用程序中工作。
是否有任何其他类似于静态变量的选项可以改装到系统中(通过合理的努力;重构系统以正确设计目前超出范围)?
解决方案
推荐阅读
- python - 使用 attrs 创建的类的索引类型无效
- excel - 在 HTML 中调整表格
- macos - 如何在 MacOS Big Sur 中禁用窗口阴影
- python - 使用列表子类的多处理 manager.list
- python - 根据列表中的顺序替换列中的值
- android - 如何在按钮android中动态更改文本颜色
- c#-4.0 - 如何在泛型类中添加动态类作为类型参数
- swift - 在 wkwebview 中自动缩放 HTML 内容
- android - 如何从 ViewPager 转换为 ViewPager2
- java - 如何添加特定于应用程序(非全局)的 Maven 代理设置