【发布时间】:2021-07-30 19:59:37
【问题描述】:
我有一门课,每分钟都有多个用户与之交互。有时这些用户不在美国,因此他们得到的结果与美国用户不同。当我在美国刷新页面时,我发现我的一些结果是针对另一个国家的。我读到 ASP.NET 的 C# 类同时为所有用户运行。这意味着每个人都共享同一个班级。有没有办法为每个用户单独运行一个类的实例?
示例:类的变量因德国用户而更改,然后当我刷新页面时,我的结果是德语。
我希望我的课程保持原样。它是一个包含大量数据的大类。如果有某种方法可以将类保留在实例中并为每个用户重新创建类。请帮我解决这个问题。谢谢。
【问题讨论】:
-
类和会话数据是正交概念,能否说明你的类是如何实例化的,是否有静态字段,可能有助于我们了解你的问题所在。
-
同一控制器类的请求之间只共享静态属性
-
您是否为各种语言环境使用全球化资源,如果是,您如何切换资源?
-
是的,我使用了很多静态类。这是造成此类问题的原因吗?
-
第 1 部分:我使用静态类,顺便说一下,这些类都设置在一个主类中。我不使用会话。为了存储一些 cookie,我使用常规的 javascript。但是这个问题不可能来自 js,因为我没有将任何服务器逻辑加载到 js 中。在下面的链接中,您可以看到正在从服务器端填充下拉列表。但由于某种原因,只有第一个元素是正确的。在这张图片中,第一个元素是俄语文本。下一个元素是日语。如果我刷新页面,那么一切都会变成俄语,因为我打开的链接是针对俄语的。不应为此页面加载日语
标签: c# html asp.net class instance