在 UWP 中读取 XML 文件时如何明确指定类型参数
How do I specify a type argument explicitly when reading an XML file in UWP
我正在开发一个 UWP 应用程序,我需要在其中读取 XML 文件并将其写入设备。我花了一段时间搜索,才找到涵盖基础知识的教程,足以让我 "sort of" 理解它。本教程 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;
}
我认为也许我需要将 Task < T > 更改为 Task < string >,但我也无法做到这一点。那么我需要做什么来显式指定类型参数?
编译器无法确定 T 的类型。您需要明确指定它:
Robot robot2 = await XmlIO.XmlRW.ReadObjectFromXmlFileAsync<Robot>("robbie.xml");
我正在开发一个 UWP 应用程序,我需要在其中读取 XML 文件并将其写入设备。我花了一段时间搜索,才找到涵盖基础知识的教程,足以让我 "sort of" 理解它。本教程 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;
}
我认为也许我需要将 Task < T > 更改为 Task < string >,但我也无法做到这一点。那么我需要做什么来显式指定类型参数?
编译器无法确定 T 的类型。您需要明确指定它:
Robot robot2 = await XmlIO.XmlRW.ReadObjectFromXmlFileAsync<Robot>("robbie.xml");