在UWP中读取XML文件时,如何显式指定类型参数

时间:2016-01-08 02:52:46

标签: c# xml uwp windows-10-universal

我正在开发一个UWP应用程序,我需要在该应用程序中读取和写入XML文件。我花了一些时间寻找一本基础知识的教程,足以让我“理解”它。本教程Serialize/Deserialize an Object to an XML File (Windows Universal apps 8.1)有一个简洁的例子,根据评论应该有效。但是我在F5时遇到此错误 方法的类型参数无法从用法中推断出来。尝试明确指定类型参数。

此行上的错误表面

Robot robot2 = await XmlIO.XmlRW.ReadObjectFromXmlFileAsync("robbie.xml");

它指向的方法是

    public static async Task<T> ReadObjectFromXmlFileAsync<T>(string filename)
    {
        // this reads XML content from a file ("filename") 
        // and returns an object  from the XML
        T objectFromXml = default(T);
        var serializer = new XmlSerializer(typeof(T));
        StorageFolder folder = ApplicationData.Current.LocalFolder;
        StorageFile file = await folder.GetFileAsync(filename);
        Stream stream = await file.OpenStreamForReadAsync();
        objectFromXml = (T)serializer.Deserialize(stream);
        stream.Dispose();
        return objectFromXml;
    }

我想也许我需要改变任务&lt; T>任务&lt;字符串&gt;但我也无法做到这一点。那么我需要做什么来明确指定类型参数?

1 个答案:

答案 0 :(得分:2)

编译器无法确定T的类型。您需要明确指定它:

Robot robot2 = await XmlIO.XmlRW.ReadObjectFromXmlFileAsync<Robot>("robbie.xml");