2012-09-26 2 views
0
에 덮어 쓰기

우리받은 다음 프로젝트했습니다 :의 web.config 및 app.config에 ApplicationSettings는 ASP.NET

  • Domain.UI.Web
  • Domain.Business
  • Domain.Services.EndPoints을
  • Domain.Services.Contracts
  • Domain.Services.Agents

을 덮은 tionSettings는 예를 들면 Domain.Business 프로젝트에서 app.Config 첨가되고 :

<applicationSettings> 
    <Domain.Business.My.MySettings> 
     <setting name="SomeKey" serializeAs="String"> 
      <value>someDummyValue</value> 
    </Domain.Business.My.MySettings> 
</applicationSettings> 

키 비주얼 스튜디오에 의해 생성 된 입력 접근 거기에 첨가된다. 그러나이 값은 다른 프로젝트의 web.config의 값으로 덮어 쓰게됩니다. 이것은 Domain.Services.EndPoints 프로젝트의 web.config입니다. 나는 Domain.Business 프로젝트에서 My.Settings.SomeKey를 얻을 때

<Domain.Business.My.MySettings> 
     <setting name="SomeKey" serializeAs="String"> 
      <value>actual_value</value> 
     </setting> 
    </Domain.Business.My.MySettings> 
</applicationSettings> 

이 값은 엔드 포인트 프로젝트에서 actual_value입니다. 그리고이 일을하는 것처럼 보이는 Google 코드에서 코드를 찾을 수 없어서 자동으로이 발생하는 것 같습니다.

이것은 무엇입니까? 이것은 ASP.NET이나 WCF에서 표준적인 것입니까? 어떤 버전의 프레임 워크가 소개 되었습니까? 이 덮어 쓰기 동작에 대해서는 어디에서 더 읽을 수 있습니까?

+0

Domain.Bussiness이 클래스 라이브러리라고 생각하십니까? 이 경우 정상적인 동작입니다. dll에는 .config 파일이 없으므로 라이브러리를 참조하는 응용 프로그램의 web.config (또는 실행 파일의 app.config)를 사용합니다. – Hanno

+0

입니다. 분명히 모든 값은'Domain.Services.EndPoints'의 값으로 덮어 쓰여지고 있습니다. 그러나 어떤 프로젝트도 단지'svc' 파일을 가진 프로젝트 인 EndPoints에 대한 참조를 가지고 있지 않습니다. 나는 당신이 설명한 일반 원칙이 여전히 적용되지만 이것이 WCF에 특정한 것인가? – Laoujin

답변

1

Domain.Bussiness은 클래스 라이브러리이므로 정상적인 동작입니다. dll에는 .config 파일이 없으므로 라이브러리를 참조하는 응용 프로그램의 web.config (또는 실행 파일의 경우 app.config)를 사용합니다.