我正在开发一个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;但我也无法做到这一点。那么我需要做什么来明确指定类型参数?
答案 0 :(得分:2)
编译器无法确定T的类型。您需要明确指定它:
Robot robot2 = await XmlIO.XmlRW.ReadObjectFromXmlFileAsync<Robot>("robbie.xml");