2016-12-02 5 views
0

이 발견되었습니다. 다시 문제가 있습니다. , Before completing the analysis was detected ending stream (I 올바른 번역을 모르는 : 어딘가에, 내가 찾은 다음 코드 :분석을 완료하기 전에 종료 스트림

private T DeepDeserialize<T>(string fileName) 
    { 
     T returnValue; 
     using (FileStream str = new FileStream(fileName, FileMode.Open)) 
     { 
      BinaryFormatter binaryFormatter = new BinaryFormatter(); 
      returnValue = (T)binaryFormatter.Deserialize(str); 
     } 
     return returnValue; 
    } 

나는 몇 가지 클래스 오늘 수정 한 지금, 그것은 항상 이런 식으로 번역 될 수있는 오류가 발생합니다 오류 메시지가 영어가 아닌 내 언어로 표시됩니다.)

나는이 두 줄 사이에 str.Position = 0;을 넣으려고했는데 여기 어딘가에서 찾았지만 도움이되지 않습니다.

누군가 다시 나를 도와 줄 수 있습니까? 무엇을 해야할지 전혀 모르겠다. ...

+1

클래스를 수정 한 경우 이전 파일에서 더 이상 직렬화 할 수 없으며 먼저 그들을 직렬화해야합니다 –

+0

오, 고마워요! 내 파일을 다시 만드는 걸 잊었 어 .-- 어리석은 실수 야, 그렇지? 다시 한번 감사드립니다. 이 게시물의 답변으로 다시 게시하도록 요청할 수 있습니까? 답변으로 표시 할 수 있습니까? :-) – SoptikHa

+0

물론 몇 가지 제한이 있습니다. 수락하기 전에 몇 분 정도 기다려야합니다. – SoptikHa

답변

1

파일의 이진 레이아웃을 변경했지만 이전 파일을 비 직렬화하려고했을 가능성이 큽니다. 이건 효과가 없을거야. 새로운 버전을 먼저 직렬화해야합니다.

P. 버전 관리 및 사용자 정의 포맷터를 초기 단계에서 고려한다면 변경 사항이 얼마나 큰지에 따라 새로운 클래스로 이전 데이터를 비 직렬화 할 수 있습니다.