2011-03-22 1 views
1

나는이처럼 보이는 MyClassFile.cs 파일이asp.net C#을 공공의 정적 및 동시 사용자는


public partial class _Default : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     var Parameters = new Dictionary<string, object> 
     { 
      { "?Parameter1", TextBox1.Text }, 
      { "?Parameter2", TextBox2.Text } 
     }; 

     DataTable dtTable = MyClass1.ReadData(Connection, Command, Parameters); 
     ListView1.DataSource = dtTable; 
     ListView1.DataBind(); 
    } 
} 

이것은 웹 사이트 용입니다. ReadData()가 public static이기 때문에 특히이 코드에 문제가 있습니까? 많은 사용자가 동시에 그것을 사용한다면 어떨까요?

내 목표는 재사용 ".ReadData (X, Y, Z)"및 ".WriteData (X, Y, Z)"

그것은 이러한 방법 같다

답변

1

정적 메서드는 응용 프로그램의 다른 부분에서 공유하는 개체에 액세스하지 않는 한 본질적으로 스레드 안전합니다. 따라서 ReadData/WriteData 메서드에서 매개 변수를 수락하고 DB 연결을 만들고 명령문을 실행 한 다음 무언가를 반환하면 OK입니다.

4

어떤 공유 상태가없는을 가지고있다 - 정적 변수를 사용하지 않으므로 괜찮을 것입니다.

필자는 개인적으로 데이터 레이어를 프레젠테이션 레이어에 삽입 (또는 다른 레이어가있는)하여 테스트를 더 쉽게하기를 선호합니다. 정적 메서드는 종종 테스트의 적입니다.하지만 약간 다른 문제입니다.