我正在尝试将对象列表(包含文件URI)保存到ASP.NET MVC中的文件中,这样当我加载页面时,将加载并显示保存的文件URI。当我在Windows窗体中尝试它时,它运行得很好,但是,我无法在MVC中使用它。
作为参考,以下是我在Windows窗体中使用的代码,用于保存文件中的对象列表并加载文件的内容。
private void Save(List<Uri> list)
{
BinaryFormatter b = new BinaryFormatter();
FileStream file = File.Create(fileName);
b.Serialize(file, list.ToList());
file.Close();
}
private void LoadFile()
{
try
{
BinaryFormatter b = new BinaryFormatter();
FileStream file = File.Open(fileName, FileMode.Open);
fileList = (List<Uri>)b.Deserialize(file);
file.Close();
}
catch
{
MessageBox.Show("Error Loading File!");
}
}
当我在Controller类中放入相同的代码时,我在以下行中收到错误:
FileStream file = File.Create(fileName);
FileStream file = File.Open(fileName, FileMode.Open);
错误:
&#39; Controller.File(byte [],string)&#39;是一种方法,在给定的上下文中无效
我的控制器名称是&#34; FilesController&#34;但我不认为名字有冲突。
任何帮助都将非常感谢! :) 非常感谢你!
答案 0 :(得分:3)
'Controller.File(byte [],string)'是一个方法,在给定的上下文中无效
Controller
班has a member called File
already。 (一种方法,因为错误状态。)所以当你在控制器中执行此操作时:
File.Create(fileName);
对名为File
的东西的第一个引用是该方法,它使该行无效。如果要使用System.IO.File
对象,则必须指定:
System.IO.File.Create(fileName);
理想情况下,这种基于依赖性的操作不会在控制器中发生。但是为了简单起见,如果应用程序在第一时间做的不多,那么在控制器中执行这些操作并不是完全不常见。