2012-01-19 2 views
0

하나의 문제점이 있습니다. 솔루션을 만들었으며 3 층 응용 프로그램입니다. 그래서 저는 3 개의 프로젝트가 클래스 라이브러리이고 하나는 윈도우 폼 어플리케이션입니다.이 어플리케이션을 사용하면 모든 것을 시작하고 함께 연결할 수 있습니다. 데이터 레이어 app.config 파일에 문제가 있습니다. 내가 그 dll에 넣으면 나는 그것을 읽을 수 없다. 내가 주 프로그램 (윈도우 폼 응용 프로그램)에 넣으면 나는 그것을 읽을 수 없다.여러 프로젝트가있는 솔루션에서 app.config 파일을 두는 위치 - 오류

내 질문에 app.config 파일을 어디에두면 정상적으로 읽을 수 있습니까? 나는 DLL에서 그것을 읽고있다. 그것이 3.tier 애플 리케이션이고 모든 레이어가 그들 자신이기 때문에 그것은 그렇게해야합니다. 그래서 하나는 데이터 계층, 비즈니스 논리 및 표현 계층입니다.

도와주세요.

편집 : 그 클래스에

SqlConnection konekcija = new SqlConnection(ConfigurationManager.AppSettings["skripta"]); 

app.config 파일 :

그래서 나는이 같은 데이터 계층 app.config 파일에서 읽고 있습니다 :

내가 몇 가지 코드를 좋아 전달할 수 있습니다 도서관 프로젝트 :

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <startup useLegacyV2RuntimeActivationPolicy="true"> 
    <supportedRuntime version="v4.0"/> 
    </startup> 
    <appSettings> 
    <add key="skripta" 
      value="Data Source=DENONTH-PC;Initial Catalog=rups;Integrated Security=True;Pooling=False" /> 
    </appSettings> 
</configuration> 

나는 librabry 클래스와 Windows form pro에 app.config가 있습니다. ject 아직 아무것도 그것을 제대로 참조하고 있습니다.

+0

예외가 있습니까? – Glenn

답변

7

보통 프로젝트 당 하나의 app.config가 있지만 실제 값은 기본 (일반적으로 UI) 응용 프로그램의 구성에 보관됩니다. 그런 다음 Core/Utility 프로젝트를 만들고 구성 키/값 노출을 담당하는 클래스를 하나 만듭니다. Core/Utility 프로젝트는 의존성이 없지만, 설정 값을 필요로하는 프로젝트가 참조 할 수 있습니다. 언젠가 내가 예를 들어 전환하고 싶다면 정말 단순한 추상화 레이어를 제공합니다. 데이터베이스 기반 구성.

그래서 결국 : windows config에 모든 것을 넣으십시오. ConfigurationManager 클래스를 사용하는 경우 클래스 라이브러리에서 절대적으로 도달 할 수 있어야합니다.

편집 # 1 : 코드에서

<connectionStrings> 
    <add name="ConnString" connectionString="server..."/> 
</connectionStrings> 

:

ConfigurationManager.ConnectionStrings["ConnString"]; 
의 app.config에서 : 당신은 의미, 그것을 제대로, 저장 및 연결 문자열을 사용하고자하는 모든 경우 처음

지금 사용해보세요. 나는 당신의 코드가 작동해야하기 때문에 당신이 뭔가 잘못하고 있다고 확신한다.

+0

app.config 파일을 의미하는 모든 것이 있습니까? 하나의 솔루션과 4 개의 프로젝트가 있습니다. 하나는 Windows 양식 앱입니다. 다른 클래스 라이브러리입니다. app.config를 windows form 프로젝트에 복사 했는데도 여전히 아무 것도 ... – Denonth

+0

클래스 lib에 appsettings 섹션이 있고 거기에 키/값이있는 경우 배포하기 전에 기본 프로젝트의 응용 프로그램에서도이 설정을 사용해야합니다. config. 그 값들을 어떻게 읽습니까? – IamDeveloper

+0

이것은 맞습니다. 한 가지 팁은 ConfigurationMangager를 TTD 기능을 향상시키기위한 인터페이스가 포함 된 일부 클래스로 래핑하는 것입니다.그러나 그것은 단지 약간의 여분의 물건이고이 질문을위한 것이 아닙니다. – Glenn