c# - ASP.Net 普通类中的静态类

标签 c# asp.net class static

我知道在 ASP.Net 项目中将类设为静态会导致该类的运行时属性可用于 Web 服务器上的所有 session 。

我的问题是:如果我声明嵌套类是静态的,但容器不是,跨 session 共享类是否仍然适用?

示例:

 public class FooContainer 
    {

        public static class Bar
        {
        }

        public static class dog
        {
        }
    }

最佳答案

是的;静态嵌套类与任何其他静态类具有相同的行为。唯一一次嵌套类的行为不同是当外部类是泛型类型时(嵌套类型然后通过父类隐式泛型,所以 FooContainer<X>.Bar 将独立于 FooContainer<Y>.Bar )。

请注意:在 session 之间共享数据的静态充满了危险。像偏执狂一样同步。就我个人而言,我需要一个很好的理由来做这件事……而且它需要仔细实现。我只将这种方法用于配置缓存之类的事情,即使那样我也非常非常小心。

关于c# - ASP.Net 普通类中的静态类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5420640/

相关文章:

javascript - 如何判断一个函数是不是一个类?

c# - 可访问性不一致 : parameter type 'x' is less accessible than method 'y'

c# - ASP.NET中母版页的OnError方法的异常处理

asp.net - 在 Visual Studio 中禁用浏览器链接选项是否明智?

c# - ASP.NET 5 类库 (vNext) 中的编译器无法识别类

c# - Google Adword 和 asp.net 母版页

c++ - 实现类似的类

c# - WS_EX_COMPOSITED causes entire app to flicker/shimmer when tab control has too many tabs

c# - pinvoke 编码 double 类型的二维多维数组作为 C# 和 C++ 之间的输入和输出

c# - 为什么 XmlSerializer.Order 这样做