我正在开发一个UWP应用程序,需要在该应用程序中向设备读写XML文件。我花了一段时间搜索才找到一个教程,它涵盖了基本知识,足以让我"有点"理解它。这个教程将对象序列化/反序列化为XML文件(Windows Universal应用程序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;
}
我想也许我需要更改Task<T>到任务<string>但我也做不到。那么,我需要做些什么来显式地指定类型参数呢?
编译器无法确定t的类型。您需要显式指定它:
Robot robot2 = await XmlIO.XmlRW.ReadObjectFromXmlFileAsync<Robot>("robbie.xml");