2011-05-04 2 views
0

저는 클래스 라이브러리로 작업한다는 생각을하기 위해 정말로 고심하고 있습니다. 공유 클래스 라이브러리가 아닌 중복 클래스로 별도의 프로젝트를 유지하는 것이 중요합니다.클래스 라이브러리로 정말 어려움을 겪고 있습니까? 라이브러리에서 지연로드/연결 문자열을 어떻게 처리합니까?

단일 클래스 라이브러리 프로젝트와 두 개의 웹 응용 프로그램이 포함 된 솔루션을 만들었습니다. 내 주요 문제는 연결 문자열입니다. 이것들은 웹 프로젝트에서 개최/선언되며 모든 종류의 데이터 액세스를 수행 할 때마다 클래스 라이브러리로 전달해야합니다. 나는 내가 이것을해야하는 이유를 일종의 이해하므로 나는 잠시 그걸 가지고 간다.

이것은 이제 게으른로드로 인해 문제/질문으로 이어졌습니다. 나는 다음과 같은 속성에 대한 게으른 로딩을 사용하고 있습니다 :

Public Property KeyRelationshipManager() As Employee 
     Get 
      If _keyRelationshipManager Is Nothing Then 
       _keyRelationshipManager = Employee.GetEmployee(_keyRelationshipManagerStaffNumber) 
       Return _keyRelationshipManager 
      Else 
       Return _keyRelationshipManager 
      End If 
     End Get 
     Set(ByVal value As AECOM.Employee) 
      _keyRelationshipManager = value 
     End Set 
    End Property 

을이 속성이 기능을 사용하기 때문에 :

Employee.GetEmployee 

내가 그 함수에 연결 문자열을 전달해야합니다.

이것은 연결 문자열을 사용할 때마다 속성에 전달해야하므로 함수에 전달할 수 있음을 의미합니다.

이 정보가 맞습니까? 방대한 양의 함수와 속성을 조정하고 연결 문자열을 전달해야하기 때문에 내게 '느껴지지 않습니다.'

답변

0

왜 연결 문자열을 클래스 라이브러리에 전달합니까? 클래스 라이브러리에 ConfigurationManager.ConnectionStrings["myClassLibraryConnection"]을 사용하십시오. 호스트 응용 프로그램의 구성 파일에 연결 문자열이있는 한 정상이어야합니다. web.config 파일 작업은 여러 클래스 라이브러리의 구성을 바인드하여 단일 응용 프로그램을 구성합니다.

+0

나는 그것이 올바른 방법이라고 생각했기 때문에 나에게 틀린 것처럼 보이지만 그것은 내가 읽은 것입니다. 또한 내 라이브러리의 ConfigurationManager에 액세스 할 수 없습니다. 추가 할 필요가 있거나 네임 스페이스를 가져올 참조가 있습니까? 그렇게 많이하는 편이 낫습니다. – Westicle

+0

잘 전달하면 클래스 라이브러리에서 하드 코딩하는 것이 낫습니다. 그러나 호스트 응용 프로그램의 web.config에서 연결 문자열을 지정하는 것은 실제로 전달하는 것과 동일합니다. 호스트 응용 프로그램은 클래스 라이브러리에 사용할 데이터베이스를 알려줍니다. 'ConfigurationManager'는'System.Configuration' 네임 스페이스에 있습니다. –

+0

감사합니다. 나는 정말로 이것과 더불어 아래로 있었다. 그러나 나는 마침내 거기에 도착하고있다라고 생각한다. – Westicle

관련 문제