如何在带有Windows.Storage的UWP中使用System.IO序列化程序

问题描述 投票:0回答:1

我希望能够有一个类对象列表(List<Class>),并且能够轻松地写入和读取文本文件。

在我以前使用的控制台应用程序]和Windows窗体应用程序中:

List<Class> _myList = ... 
WriteToFile<List<Class>>("C:\\...\\Test.txt", Class _myList)

public static void WriteToFile<T>(string filePath, T objectToWrite, bool append = false) where T : new()
        {
            TextWriter writer = null;
            try
            {
                var serializer = new XmlSerializer(typeof(T));
                writer = new StreamWriter(filePath, append);
                serializer.Serialize(writer, objectToWrite);
            }
            finally
            {
                if (writer != null)
                    writer.Close();
            }
        }

但是,这在UWP应用程序]中不起作用,我必须使用StorageFolderStorageFile,它们可以很好地将简单文本写入这样的文件中:

StorageFolder folder = Windows.Storage.ApplicationData.Current.LocalFolder;
StorageFile file= await storageFolder.GetFileAsync("Test.txt");
await FileIO.WriteTextAsync(sampleFile, "Example Write Text");

但是我希望能够将XmlSerializerStreamWriter一起使用更高级的功能,以将类列表写入UWP应用程序中的文件。

我该怎么做?

我希望能够有一个类对象列表(List ),并且能够轻松地写入和读取文本文件。在以前的控制台应用程序和Windows窗体应用程序中,我曾经......>

c# uwp storage xmlserializer storagefile
1个回答
0
投票

您可以使用所使用方法的基于Stream的版本,例如StreamWriter具有采用System.IO.Stream实例的构造函数。

要从System.IO.Stream中获取StorageFile,可以使用OpenStreamForWriteAsyncOpenStreamForWriteAsync扩展方法,它们在UWP的OpenStreamForReadAsync命名空间中:

OpenStreamForReadAsync
© www.soinside.com 2019 - 2024. All rights reserved.