我需要一些帮助。我正在创建一个方法,该方法获取带有文件名的字符串,并在项目路径上读取文件json,然后反序列化对象。
但是在打开文件时,我想用文件名将路径连接起来,它不起作用。
public static ObjectXpto ObjectXptoType(string filename)
{
ObjectXpto objectXpto = new ObjectXpto();
using (StreamReader file = File.OpenText(@"..\project\Data\$"{filename}".json"))
{
JsonSerializer serializer = new JsonSerializer();
objectXpto = (ObjectXpto)serializer.Deserialize(file, typeof(ObjectXpto));
}
return objectXpto;
}
您可以在字符串之前使用$和@符号在字符串中键入变量名称。
using (StreamReader file = File.OpenText($@"..\project\Data\{filename}.json"))
我认为您想要这个:
public static ObjectXpto ObjectXptoType(string filename)
{
ObjectXpto objectXpto = new ObjectXpto();
using (StreamReader file = File.OpenText($"..\\project\\Data\\{filename}.json"))
{
JsonSerializer serializer = new JsonSerializer();
objectXpto = (ObjectXpto)serializer.Deserialize(file, typeof(ObjectXpto));
}
return objectXpto;
}
}
通常建议为此使用内置的Path
方法:
var filename = "test";
var path = @"..\project\Data\";
var result = Path.ChangeExtension(Path.Combine(path, filename), "json");
.. \ project \ Data \ test.json