2010-08-19 5 views
3

저는 ASP.NET 프로젝트가 있으며 비교적 정적 인 데이터를 저장하기 위해 프로젝트 내에 XML 파일을 포함하고자합니다. 이를 위해 솔루션 컨텍스트 메뉴에서 "파일 추가"를 선택하고 XML 파일을 선택했습니다. 이것을 내 프로젝트에 추가 한 다음 코드 내에서 XML을로드하려고했습니다.VS2008 ASP.NET 프로젝트에 포함 된 파일 사용

XmlDocument xmlDoc = new XmlDocument(); 
xmlDoc.Load("~/MyData.xml"); 

하지만 (즉, 내 VS2008 디렉토리) 및 프로젝트가 아닌 현재 디렉토리에서 찾고있는 것 같다 :

XmlDocument xmlDoc = new XmlDocument(); 
xmlDoc.Load("MyData.xml"); 

나는 또한 시도 : 나는 다음 시도했다. 나는 이것에 대해 잘못 갈까? 이와 같이 프로젝트에 포함 된 리소스를 간단히 참조 할 수있는 방법이 있습니까?

답변

0

두 번째 시도에서 '~'은 HyperLink.NavigateUrl과 같은 컨트롤 속성에 설정된 파일 URL의 일부일 때 평가됩니다. 이 xmlDocument.Load (에 전달되는 문자열)의 한 부분 인 경우, 명시 적으로 포함 리소스로 파일을 포함 할 수

또는 Server.MapPath("~/MyData.xml")

, 사용하여 평가되어야한다. 솔루션에서 파일을 마우스 오른쪽 단추로 클릭하고 빌드 동작에서 포함 리소스를 선택합니다. 출력 디렉토리 옵션 복사에서, 여기에

파일 읽는 방법의 예입니다 '복사하지 마십시오'선택

 var assembly = Assembly.GetExecutingAssembly(); 
     if (assembly != null) 
     { 
      var stream = assembly.GetManifestResourceStream("RootProjectNamespace.MyData.xml"); 
      if (stream != null) 
      { 
       XmlDocument xmlDoc = new XmlDocument(); 
       xmlDoc.Load(stream); 
      } 
     } 

주, 당신의 기본 네임 스페이스와 파일 이름을 접두사가 당신의 계획. 프로젝트를 마우스 오른쪽 단추로 클릭하고 등록 정보를 선택하고 응용 프로그램 탭에서 기본 네임 스페이스를 맨 위에 표시하면이 이름을 찾을 수 있습니다.

0

ASP.NET 프로젝트에서 XML 파일을 추가하기 위해 수행 한 단계는 .aspx 페이지와 같은 응용 프로그램의 다른 파일과 마찬가지로 응용 프로그램에 포함되지 않습니다. 당신이

또한
XmlDocument xmlDoc = new XmlDocument(); 
xmlDoc.Load(Server.MapPath("~/MyData.xml")); 

이 더 나은 에서 이러한 파일을 유지하는 것 폴더

App_Data을 시도 할 수

관련 문제