我刚拿到一个项目,它有一些使用静态方法的核心类。使用HttpContext和数据库连接的静态方法
它是一个C#项目,其接口反映了一些JavaScript方法。 在这个界面中,有使用了大量的调用静态方法的HttpContext的,并从数据库中的数据(实际上只是一个访问数据库),像这样的(一些方法有内部的一些逻辑):
public static string UsrId {
get{
try {
return HttpContext.Current.Session["usrid"].ToString();
} catch(NullReferenceException) {
return ServiceVars.GuestId;
}
}
}
所以我的问题是:
这是不好的实践吗?做这件事的利弊(和优点)是什么?
我在某处读到使用数据库连接的静态方法对高流量站点不利,因为它会排队请求。这是真的?或者我应该不用担心静态方法中的数据库连接?
那么静态方法中的HttpContext呢,它不好,为什么?
这里有什么不好的是'NullReferenceException'的问题。永远不要这样做。 –
使用大量静态方法的一个问题是,如果您稍后决定要使用“[依赖注入](http://jamesshore.com/Blog/Dependency-Injection-Demystified.html)”,它们可能会成为障碍。 “,例如,如果您正在尝试为您的代码构建一组单元测试。关于你对数据库连接的评论......静态方法的本质并不会导致这样的问题。这取决于某人是否已经实现了他们特定的数据库连接代码,无论是否使用静态方法。 –