0
.NET의 XML 라이브러리에 익숙하지 않아서 IXmlSerializable 인터페이스 주위를 감싸고 있습니다. 윈도우 스토어 앱 (W8)을 개발 중이며 IXmlSerializable 인터페이스를 사용하고자하지만 문제가 발생합니다. XmlWriter의 팩토리 메서드를 사용하지만 XmlTextWriter를 Windows 저장소 앱에서 사용할 수 없지만 내 코드가 XML 파일 (해당 빈 항목)에 아무 것도 출력하지 않습니다.Windows 8 store app XmlWriter가 파일에 아무 것도 쓰지 않습니다.
XmlSerializer를 사용하면 XML 파일이 예상대로 출력되지만 프로덕션 응용 프로그램에서 개인 필드가 있으므로 IXmlSerializable을 구현할 수 있습니다. 여기
은 코멘트 스레드를 감안할 때private async void saveButton_Click(object sender, RoutedEventArgs e)
{
XMLTest t = new XMLTest("test name");
StorageFolder folder = ApplicationData.Current.LocalFolder;
Stream fs = await folder.OpenStreamForWriteAsync("testingXML.xml", CreationCollisionOption.ReplaceExisting);
XmlWriterSettings settings = new XmlWriterSettings();
settings.ConformanceLevel = ConformanceLevel.Auto;
var x = XmlWriter.Create(fs, settings);
//XmlSerializer xs = new XmlSerializer(t.GetType());
//xs.Serialize(fs, t);
t.WriteXml(x);
fs.Dispose();
}
'x.Close() '를 호출 해 보았습니까? 모든 것이 버퍼링되었는지 궁금합니다 ... (이상적으로는'fs'와'x'에'using' 문을 사용하십시오.) –
fs와 x는 디버그 할 때 어떻게 보이나요? 정보가 있습니까? – Bit
@JonSkeet 버퍼링 문제인 것처럼 보입니다. xml 작가에게 flush를 호출하면 문제가 해결되었습니다. 감사. –