파일로 스트리밍하는 동안 문제가 발생합니다. 간단한 해결책이 있지만 문제가 있습니다. 제가하려고하는 것은 매우 간단합니다. 클래스의 내용을 가져 와서 XML로 직렬화하고 파일로 스트리밍합니다. 내가 사용하고있는 코드는 다음과 같다 :XmlSerializer 및/또는 StreamWriter가 해당 내용을 해제하지 않음
ObservableCollection<RackItemViewModel> rackVMs = ProjectTree.GetTreeData();
XmlSerializer serializer = new XmlSerializer(typeof(RackItem));
using (TextWriter tw = new StreamWriter(filename, false))
{
foreach (RackItemViewModel VM in rackVMs)
serializer.Serialize(tw, VM.RackItem);
}
ProjectTree.GetTreeData()는 단지 직렬화 할 데이터를 반환한다. 프로그램을 실행하고 예상대로 데이터를 저장하면 데이터가 저장되고 Deserialize로 다시 읽을 수 있습니다. 내가 가지고있는 문제는 하나 이상의 저장을 수행 할 때입니다. 한 세트의 데이터를 하나의 파일에 저장하고 다른 세트를 다른 파일에 저장하면 첫 번째 파일은 정확하지만 두 번째 파일은 첫 번째 파일과 두 번째 파일의 연결입니다! 스트림 또는 XMLSerializer가 저장간에 내용을 해제하지 않는 것 같습니다. 스트림 대신 writefile을 사용해 보았는데 같은 문제가 발생했습니다. 또한 플러시를 시도하고 스트림을 닫았지만 효과가 없습니다. 말할 필요도없이 닫고 응용 프로그램을 저장하는 사이에 다시 시작하면 모두 정상적으로 작동합니다. 누구나 내가 뭘 잘못하고 있다고 말할 수 있습니까?
아래에 게시 한 것처럼 다른 코드가 있습니까? 필자가 아는 한, 하나의 파일에 쓰고 다른 파일을 쓰려면 두 개의 별도의 StreamWriter를 사용해야하므로, 아직 보지 못한 코드가 더 있다고 가정합니다 ... – Charleh