2009-03-23 3 views
1

우리 웹 프로젝트에는 SqlConnection 개체를 만들고 web.config에서 DB 연결 문자열을 가져 오는 사용자 지정 데이터베이스 연결 클래스가 있습니다.사용자 지정 데이터베이스 연결 클래스 문제

좋은 점이 있지만 문제가 하나 있습니다. 웹 프로젝트 내의 모든 프로젝트는이 클래스가 작동 할 수 있도록 web.config에 의존합니다.

사용하려는 콘솔 프로젝트와 같이 web.config가 필요하지 않은 다른 솔루션이나 프로젝트에서 DL에서이 db 연결을 사용할 필요가 있습니다. 우리 웹 프로젝트의 일부 DL 방법을 말할 수 있습니다. 일부 데이터 조작.

결과적으로 콘솔 솔루션에 BL 프로젝트 메소드를 추가 할 때 DB 연결을 만들려고하지만 내 콘솔 응용 프로그램에는 web.config가 없으므로 폭탄을 터뜨릴 수 있습니다. 가)

그래서 비 웹 프로젝트를 기반으로한다는 Web.config의 키에 의존 해당 연결을 만드는 웹 프로젝트 B)에 해당 클래스를 넣어 :

는보다도록 SqlConnection의 생성을 관리 할 수있는 더 좋은 방법이 있나요 그 BL을 참조하지 않고, 궁극적으로 web.config의 키에 의존하는 연결에 의존하지 않고 BL을 사용할 수 있습니까?

+0

신경 끄시 고 다른 프로젝트로 추상화되었습니다. 내 잘못. 해결 된 – user72603

+0

확인, 여전히 문제입니다. 연결 클래스가 추상화되어 있더라도 궁극적으로 web.config의 키에서 연결 문자열 값을 가져옵니다. 그래서 web.config를 사용하지 않는다면 웹 이외의 솔루션에서 전혀 좋지 않습니다. – user72603

답변

1

콘솔 응용 프로그램에서 DB 연결 설정을 App.Config로 이동해야하지만 App.Config와 Web.Config에 모두 저장하지 않으려 고하므로 다음 기술을 사용할 수 있습니다.

1)이 기술 detailed here 단일 DBSettings.config 파일

2)의 구성과의 Web.config의 app.config 행으로는

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <appSettings file="DBSettings.config"> 
    ... 
</configuration> 

요구되는 기준에 DN 구성 설정을 이동.

+0

그렇습니다. DBSettings.config가 장기적으로 잘 작동한다는 것을 알 수 있습니다. 하지만 지금은 콘솔 앱과 같이 웹과 아무 관련이 없습니다. App.Config를 만들면 기존 코드가 자동으로 web.config 대신 해당 코드를 선택할 수 있습니다. – user72603

+0

내 콘솔 앱은 완전히 새로운 솔루션 (데이터로드라고 함)에 포함되어 있으며 웹 프로젝트가 사용중인 약 3 개의 클래스 (BL 등)를 사용하여 데이터를 가져 오지만 데이터의 웹 프로젝트는 사용하지 않습니다 솔루션은 웹과 아무 관련이 없으며 단지 유틸리티 솔루션입니다 – user72603

+0

그래서 데이터로드 솔루션이나 콘솔 앱에 App.config 파일을 추가하면 다른 xml이있는 것처럼 작동합니다 구성 파일? 즉, App.config를 내 콘솔 앱에 추가하면 System.Configuration.ConfigurationManager.AppSettings를 호출해야합니다. – user72603

관련 문제