을 받고 정확한 절대 경로에 사용되는 라이브러리 웹 프로젝트

StackOverflow https://stackoverflow.com/questions/602265

  •  03-07-2019
  •  | 
  •  

문제

가 asp.net mvc 프로젝트에 사용하는 일부 검색 방법에서 별도의 라이브러리입니다.이 라이브러리가 필요하의 위치를 알고 나의 루씬 index 파일이 있습니다.

    private static string lucenePath = ConfigurationManager.AppSettings["lucenePath"];

    public static ColorList SearchColors(Query query) {
        return new ColorList(
            new IndexSearcher(Path.GetFullPath(lucenePath)),
            query);
    }

이것을 정확하게 읽고 내 구성 lucenePath 웹에서.config 의 응용 프로그램 키 노드입니다.하지만 어떻게 얻을 수 있습니 정확한 전체 경로에서 이 상대적인 경로?경로에 있습니다.GetFullPath 게 완전히 잘못된 경로입니다.

----결론
만약 당신이 가고 싶은 풀아웃 tvanfosson의 답은 아마 당신을 위해.
나는,그러나,그것을 좀 더 뇌를 사용하여 다음과 같다:

Path.Combine(AppDomain.CurrentDomain.BaseDirectory,
    ConfigurationManager.AppSettings["luceneIndex"].TrimStart('\\'));

보이는 것입니다에서 호출자의 응용 프로그램입니다.config 한 컴파일이라고"path"과 결합한 그 가치를 발신자의 경로입니다.TrimStart()는지 확인하는 설정 파일을 모두 포함하도\나지 않습니다.

도움이 되었습니까?

해결책

이후 참조하이에서 별도의 라이브러리할 수 있습을 통해 이동해야 무리의 농구에 대한 액세스를 얻을 HttpServerUtitity 또는 일부를 소개하게 결합하는 클래스하기 어려운 mock.수도 있을 고려해 하나의 구성 등을 로드하는 속성에서 웹을 구성하는 얻으로 주입된 라이브러리를 통해 생성/setter.을 쉽게 만들에 대해 테스트할 수 있습 인터페이스를 정의할 수 있는 조롱에서 당신의 단위 테스트하고 그것을 구현하는 것.구성 클래스를 사용할 수 있습 HttpServerUtility 를 구하는 절대 경로 및 저장을 내부적으로 다시 사용할 수 있습니다.

다른 팁

Server.MapPath(string);
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top