배경 : 데이터베이스가있는 ASP.NET MVC3 앱이 있습니다. 나 또한 (다른 것들 중에서) 웹 애플 리케이션의 데이터베이스를 초기화하는 복잡한 콘솔 응용 프로그램을 가지고 있습니다 : 생성, 제약 조건 추가, sprocs 추가, 트리거, 시드 추가 등등. 나는 웹 응용 프로그램으로 콘솔 논리를 옮길 수 없다. 우리 아키텍처에서의 감각).호스팅 환경 외부에서 ASP.NET MVC 경로에 액세스하십시오.
문제 : 콘솔 응용 프로그램 분명히 그렇게 HostingEnvironment
에 접근, MapPath
, HttpContext.Current
, Server.MapPath
, ~
등을하지만이에서 웹 응용 프로그램의 경로에 대한 액세스를 필요로하지 않는다, 호스팅 된 환경에서 실행되지 않습니다 콘솔 앱. 또한 콘솔 응용 프로그램은 웹 응용 프로그램을 호출합니다. 웹 응용 프로그램은 이러한 클래스를 정상적으로 사용하지만 물론 모두 null이거나 정의되지 않습니다.
질문 : 내가 호스팅 환경의 경로 메커니즘에 액세스 할 수 있도록 이러한 클래스 중 하나를 스푸핑 할 수있는 방법이 실행되지에도 불구하고 있는가?
콘솔 앱에 필요한 모든 경로를 하드 코딩 할 수 있지만 매우 바람직하지 않습니다.
단위 테스트에 동일한 필요성이 필요하기 때문에 가능해야한다는 인상하에 있습니다.
TIA
"콘솔 앱에서 웹 앱의 경로에 액세스해야합니다."- 정확히 무엇을 의미합니까? 어떤 길과 이유? – bzlm
@bzlm : 웹 응용 프로그램의 루트 경로 (~), 이미지 디렉토리, db 디렉토리 (둘 이상), 임시 디렉토리, 다양한 csv 저장소, 클라이언트 파일 등 ... 콘솔 앱은 다양한 백엔드 시스템의 데이터를 가져 와서 고정시킵니다. 찾을 수있는 웹 시스템의 올바른 위치에 있어야합니다. 이 작업을 깔끔하게하려면 웹 응용 프로그램에서 사용하는 경로에 액세스해야합니다. 그렇지 않으면 모든 것을 하드 코딩해야하며 몇 개의 하위 시스템이 호출되어 문제가 발생할 것입니다. – Matt0