2012-11-15 2 views
0

Im MVC 프로젝트 중 하나에서 문제가 발생했습니다.이 문제는 응용 프로그램 상태 개체에서 값을 검색하는 문제입니다.Model 클래스의 응용 프로그램 상태를 검색 할 수 없습니다.

나는이 방법으로 Global.axas.csApplication_Start() 방법의 응용 프로그램 상태에 어떤 값을 저장하고있다 : 나는 web.config의 값은 디버깅을 통해이 시점에서 검색 성공적으로되었는지 확인 만든

//var str = Obj.DecryptString(ConfigurationManager.ConnectionStrings["ConStr"].ToString()); 
//Application["connString"] = str; 

Application["connString"] = Obj.DecryptString(ConfigurationManager.ConnectionStrings["ConStr"].ToString()); 

.

나는이 방법으로 내 Model Class 중 하나에이 값을 검색하기 위해 노력하고있어이 단계 후에 :

var conn = new SqlConnection(Application["connString"].ToString()); 

그러나 여기 내가 NullReferenceExceptionObject reference not set to an instance of an object.

을지고있어 지금이 매우 혼란 값을 성공적으로 검색하여 Application_Start()의 점에서 AapplicationState에 저장 한 경우 내 모델 클래스에서 사용할 수없는 이유는 무엇입니까? 응용 프로그램 전체에서 AppliciatiopnSate를 사용할 수 있습니까?

+0

라고 그냥 전화를 통해 : http://www.codeproject.com/Articles/87316/A-walkthrough-to-Application-State 그리고 나는 당신이 그것을 사용하는 방법의 차이를 볼 수 없습니다. –

답변

0

내 제안은 연결 문자열을 Application 변수에 보관하지 않는 것입니다. 오히려 당신은 이제부터 당신이 때마다 파일을 읽기의 성능에 대해 걱정할 필요가 없습니다, 캐시

public class Utility 
{ 
    static string connectionString;  
    public static string GetConnectionString() 
    { 
     if(string.IsNullOrEmpty(connectionString)) 
      connectionString = Obj.DecryptString(ConfigurationManager.ConnectionStrings["ConStr"].ToString()); 
     return connectionString; 
    } 
} 

구성 파일을 아래와 같이 연결이 정적 변수에 연결 문자열을 string.Store 반환 할 수 있습니다 정적 메서드를 선언 할 수 있습니다 방법은

+0

당신이 암호화 된 형식으로 그것을보고 사용하기 전에 암호 해독해야하는 주된 이유 중 하나는 데이터 연결이있을 때마다이 '읽기', '암호 해독'을 원하지 않기 때문입니다 시간을 늘리고 중복 연습을하는 어떤 방법으로 만들어야합니다. – SajjadHashmi

+0

대안을 제공해 주셔서 감사합니다. 그러나 구성 파일이 캐시 된 경우에도이 메소드가 호출 될 때마다 'DecryptString' 메소드를 호출해야합니다. 나의 주요 관심사는이 무거운 방법을 최대한 많이 사용하는 것을 피하는 것이다. – SajjadHashmi

관련 문제