静的メソッドを使用するいくつかのコアクラスを持つプロジェクトを取得しました。HttpContextとデータベース接続を使用した静的メソッド
JavaScriptはいくつかのメソッドを反映したインターフェイスを持つC#プロジェクトです。このインタフェースで は、このようなのHttpContextを使用して、データベース(実際にはただ一つのアクセスデータベース)からデータを取得する静的メソッドへの呼び出しの多くは(いくつかのメソッドが内部のいくつかのロジックを持っている)があります。
public static string UsrId {
get{
try {
return HttpContext.Current.Session["usrid"].ToString();
} catch(NullReferenceException) {
return ServiceVars.GuestId;
}
}
}
ので、私の質問は:
これは悪いですか?これをすることの短所は何ですか?
データベース接続を使用する静的メソッドは、リクエストをキューに入れるため、高トラフィックのサイトでは問題があります。これは本当ですか?または、静的メソッドのデータベース接続について心配する必要はありませんか?
静的メソッド内のHttpContextはどうですか、それはなぜですか?
ここで悪い点は、 'NullReferenceException'のキャッチです。それをしないでください。 –
多くの静的メソッドを使用することの1つは、後で "[dependency injection](http://jamesshore.com/Blog/Dependency-Injection-Demystified.html)を使用することを決定する場合、障害になる可能性があるということです。 "あなたのコードの単体テストを構築しようとしている場合などです。データベース接続に関するあなたのコメントに関して、このような問題を引き起こす静的メソッドの本質には何もありません。静的メソッドの使用の有無にかかわらず、誰かが特定のデータベース接続コードをどのように実装したかによって異なります。 –