내 코드에서 특정 값을 저장하기 위해 정적 필드를 사용하고 있습니다.정적 변수의 대안?
public static int webServiceId;
나는 그것을 제거하고 다른 해결책을 사용합니다. 하지만 값은 포스트 백 후에 유지되어야합니다. 여기에서는 Session 또는 ViewState를 사용할 수 없습니다. 내가 서비스 (서비스 계층)에서 작업하고 있습니다.
예 :
내가 xyz.cs 파일의 아래 방법에서 웹 서비스 ID를 얻을 :
public int SetWebServiceInformation(int? webServiceID, string webServiceName)
{
context.WebService_InsertUpdate(ref webServiceID, webServiceName);
webServiceId = webServiceID.Value;
return webServiceID.Value;
}
을 다음 다른 클래스 파일의 다른 방법 (예를 들어 abd.cs 파일)로 이동 제어합니다. 메서드 예외를 호출 할 때 첫 번째 클래스 파일 (xyz.cs)의 메서드 LogError (예외 오류)가 호출됩니다. 그리고 컨트롤이 우리 클래스 파일 (xyz.cs)에 돌아 왔을 때 webservice Id가 필요합니다. 우리는 webservice Id에 따라 예외 정보를 데이터베이스에 저장하는 데 사용하고 있습니다.
protected void LogError(Exception error)
{
----//some logic to get errorLogID//---
if (errorLogID > 0)
WebServiceErrorLogging(errorLogID, webServiceId);
//here we have webServiceId is a static variable
}
정적 변수를 사용할 수 없다는 의미의 제한이 무엇입니까? –
@David : ASP.NET/WCF –
@Henk에서 정적 병을 사용하면 안됩니다. ASP.NET/WCF –