2014-07-24 3 views
0

모바일 응용 프로그램에 대한 웹 API를 작성 중이며 httpResponseMessages로 응답합니다. 나는 고칠 수있는 초심자 인 문제를 겪었다.비즈니스 계층의 개인 정적 const

기본적으로 내 비즈니스 레이어 클래스 라이브러리에서 내가 파일에 개인 참조가

: /이 CONST이 내 솔루션 (웹 페이지)의 다른 부분에 의해 호출되는

private const string FiFile = @"C:\DirectoryFile\FI.dat"; 

, 그리고 사용되지 않습니다 또는 모바일 통화를 사용할 때 호출됩니다.

그러나 서버에이 디렉토리가없는 모바일 API를 배포하면 예외가 발생합니다.

기본적으로 하나의 솔루션에 4 개의 프로젝트가 있습니다. 하나는 웹용이고 하나는 모바일 용이며 둘 모두 비즈니스 계층에 대한 참조입니다.

어떻게 이런 일이 발생하지 않도록 할 수 있습니까?

내가 막을 수있는 유일한 방법은 위의 폴더/파일을 phsyically 만든 것입니다.

** 업데이트 ** 오류는 다음과 같다 :

{"Message":"An error has occurred.","ExceptionMessage":"The type initializer for BusinessLayer.BIFacade' threw an exception." 

ExceptionMessage":"Could not find a part of the path 'C:\\DirectoryFile\\FI.dat'. 

* UPDATE *이 내가 디버깅, 내 API 호출을 할 피들러를 사용하여 시각적 인 스튜디오는 여기 중지 :

private static readonly Dictionary<string, BiData> SBicDirectory = 
     File.ReadAllLines(FiFile).ToDictionary(line => line.Substring(3, 11), line => CreateBiData(line)); 

이것은 생성자에있는 FiFile const를 사용하려고하는 곳입니다.

* EDIT * Doohhhh - 늦었습니다. 그것은 생성자에 있으므로 다음과 같이 추측합니다 :-)

+0

예외는 무엇입니까? 이 서스펜스로 교수형에 처하게하지 마라. – Steve

+3

예외가 발생한 코드를 살펴 봐야한다. 문자열이 파일 이름처럼 보이더라도 파일 이름이어야한다는 의미는 아니며 파일이 있는지 자동으로 확인합니다. 특별히 문자열을 파일 이름으로 사용하고 파일에 액세스하려고하는 일부 코드가 있어야합니다. – Guffa

+0

죄송합니다. 도움이 될지 모르겠습니다. – CSharpNewBee

답변

0

이것은 생성자에 있으므로 항상 호출됩니다. 미안 해요.

+0

문제 없음 - 코딩상의 좌절감 중 99 %가 수정하기 쉽고 간과하기 쉽습니다. 다음 번에 예외를 유발하는 변수 나 메소드를 마우스 오른쪽 버튼으로 클릭하고 "모든 참조 찾기"를 선택할 수 있습니다. 그러면 값에 액세스하는 모든 코드 행이 표시됩니다. – null

관련 문제