2009-08-19 6 views
1

ur DAL 역할을하는 클래스 라이브러리 프로젝트가 있고 connectionstrings이있는 App.Config 파일이 있다면 어떻게 강제로 사용할 수 있습니까? 그 설정 파일? 내 웹 응용 프로그램 프로젝트의 web.config에서 값을 계속 가져옵니다.Configuration madness, 나는 app.Config를 가지고 있지만 내 객체는 web.Config로 보입니다.

DAL 프로젝트는 LinqToSql을 사용합니다. 참조 된 DAL 클래스 라이브러리 프로젝트의 웹 응용 프로그램에서 DataContext 개체를 instansiate 할 때 app.Config connectionstrings을 사용할 수 있습니까? 이 파일을 무시하는 것으로 보이며 web.Config connectionstrings 노드에서 connectionstrings을 가져옵니다. 거기에 연결 고리가 없습니다.

도움을 주시면 감사하겠습니다. 동료가 DAL과 임베디드 리소스에 app.Config를 작성하는 것에 대해 언급했습니다. 그거 좋은 생각 같아?

감사합니다, ~ 샌디에고

+0

사용중인 폴더 구조와 DLL/config의 위치를 ​​표시 할 수 있습니까? – cjk

답변

3

웹 응용 프로그램은 항상의 Web.config 사용에 CK. 데스크톱 응용 프로그램은 항상 app.config를 사용합니다.

+0

이 설정을 덮어 써야하는 경우 구성 설정을 web.config 또는 수동으로 관리하고 배포 할 수있는 XML 파일로 이동합니다. –

1

어떻게 설정 파일을 강제로 사용할 수 있습니까? 내 웹 응용 프로그램 프로젝트의 web.config에서 값을 계속 가져옵니다.

수 없습니다. System.Configuration 클래스를 사용하는 경우 항상 활성 응용 프로그램의 .config 파일 (실행 파일의 경우 app.config, asp.net 웹 사이트의 경우 web.config)에서 가져옵니다.

해결 방법은 파일을 사용하여 System.Configuration 네임 스페이스와 반대되는 설정을 읽거나 적절한 .config 파일에 DAL 구성 정보를 입력하는 것입니다 (보다 일반적인 선택).

0

잘 모르겠어요,하지만 좀 봐 :

using System.Configuration; 

ExeConfigurationFileMap Map = new ExeConfigurationFileMap(); 

Map.ExeConfigFilename = FileName; 

Configuration Conf = ConfigurationManager.OpenMappedExeConfiguration(Map, ConfigurationUserLevel.None); 

AppSettingsSection section = (AppSettingsSection)Conf.GetSection("???"); 
0

가 여기에 *의 .config 파일의 생각 방법입니다. 당신이 당신의 DAL의 방법을 가지고 말 :

해봐요 (커넥트, SqlDialect, businessObject)

커넥트와 SqlDialect이 방법 호출 할 때마다 변경되지 않기 때문에, 사람들을 제거 할 수있는 것이 좋을 것이다 매개 변수를 사용하고 다른 수단을 통해 매개 변수를 가져옵니다.

글쎄, * .config 파일은 그 이유가 있습니다. 환경에만 국한되지 않고 응용 프로그램과도 관련이 있습니다. 그것은 당신의 웹 앱이 "Hey everybody, connectString ="... "및 SqlDialect ="... "라고 말할 수 있습니다. 그렇지 않으면 내가 말할 때까지 모든 메서드 호출에 대해."

하나의 앱이 하나의 자격증 명 집합으로 SQL에 로그인하고 다른 앱이 다른 자격 증명 (필요하면 다른 perms)을 사용하여 DBA가 어떤 앱이 무엇을하고 있는지 추적 할 수있게한다고 가정 해 봅시다. 그/그녀가 그렇게 선택한다면). 글쎄, * .config 파일은 이런 일이 일어난다.

그래서 실행중인 앱이 * .config 파일을 제공합니다. 따라서 DAL의 app.config 파일에서 모든 내용을 잘라내어 Web.config 파일에 붙여 넣은 다음 App.config를 삭제하면됩니다. 당신은 그 후에 좋은 일이되어야합니다.

관련 문제