我知道在 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/