2010-04-20 3 views
0

좀 개체를 업데이트 할 데이터 저장소의 저장소로 이동이VS 디버거를 중지하면 어떻게됩니까?

ContentRepository.Update(existing); 

같은 라인을 가지고 있고이 같은이 업데이트 함수에서는 try..catch 블록이있는 경우 : 왜

 string file = XmlProvider.DataStorePhysicalPath + o.GetType().Name + Path.DirectorySeparatorChar + o.Slug + ".xml"; 
     DataContractSerializer dcs = new DataContractSerializer(typeof (BaseContentObject)); 
     using (
      XmlDictionaryWriter myWriter = 
       XmlDictionaryWriter.CreateTextWriter(new FileStream(file, FileMode.Truncate, FileAccess.Write), 
                Encoding.UTF8)) 
     { 
      try 
      { 
       dcs.WriteObject(myWriter, o); 
       myWriter.Close(); 
      } 
      catch (Exception) 
      { 
       // if anything goes wrong, delete the created file 
       if (File.Exists(file)) 
        File.Delete(file); 
       if(myWriter.WriteState!=WriteState.Closed) 
        myWriter.Close(); 
      } 
     } 

을 위의 줄에서 디버깅 세션에서 "중지"를 클릭하면 Visual Studio에서 Update()를 호출할까요?

예를 들어, F10 키를 한 줄씩 가다가 그 줄에 왔는데 이제는 노란색 줄이 그어져 있고 Stop을 누릅니다.

VS는 Update() 메서드를 실행하여 잘못된 내용을 찾아서 "catch"에 들어가서 파일을 삭제합니다. 잘못된 경우 파일을 삭제합니다. 진정한 예외는 내가 프로그램을 디버그하고 강제로 멈추지 않을 때이다.

답변

0

디버거가 분리되면 프로세스가 종료되는지 여부에 따라 다릅니다. 그렇지 않으면 프로그램이 계속 실행됩니다. 만약 그렇다면, 그렇지 않을 것입니다.

+0

이것은 ASP.NET MVC 애플리케이션에서 가져온 것입니다. 프로세스를 종료해야합니까? 지금은 브라우저 창이 열려 있습니다. 나는 그런 식으로 구성하지 않았습니다. 기본적으로 그런 것입니다. – mare

+0

@mare : Firefox를 기본 브라우저로 사용하면 프로세스가 종료되지 않습니다. IE와 함께 사용했습니다. 아마도 어딘가에 설정이 있다고 생각합니다. 그러나 나는 일반적으로 프로세스를 끝내지 않기 때문에 그것을 조사하지 않았다. –

+0

이것은 내 측면에서도 브라우저에 종속되어 있음을 확인할 수 있습니다. – mare

관련 문제