无法在ASP.NET MVC中使用File.WriteAllBytes(),无法从方法组中选择方法,您是否打算调用该方法?

7
我正在尝试将我在数据库中拥有的文件复制为字节数组,我正在寻找最简单的方法来完成此操作。在SO和其他任何地方,答案似乎是:

File.WriteAllBytes(string newfilepath, byte[] theFile);

然而,我无法使用File类中的任何东西,一旦我键入File. intellisense就会在下面画上红线并显示:

cannot choose method from method group did you intend to invoke the method?

我意识到这是一个非常普遍的问题,解决方案很可能是非常简单的,但我自己想不出来。有什么想法吗?

以下是我尝试创建文件的代码:

    var labProcessOrderLetter = from obj1 in context.LabArticles
                                join obj2 in context.ProcessLabs
                                on obj1.ProcessForLabID equals obj2.ID
                                where obj1.ID == _articleId
                                select obj2.LetterAttachment;

    byte[] thePDFLetter = (byte[]) labProcessOrderLetter.FirstOrDefault();

    var uploadPath = Server.MapPath("~/_TEMP/PDF");
    var tempfilename = Guid.NewGuid().ToString();
    var tempfilenameandlocation = Path.Combine(uploadPath, Path.GetFileName(tempfilename));

    File.WriteAllBytes( tempfilenameandlocation, thePDFLetter);

编辑:显然我已经导入了System.IO命名空间,但是在我的项目中没有叫做File的方法或类,甚至没有以File开头的。


请展示样例代码,并确保您有一个 using System.IO; 的使用指令。 - Jon Skeet
你在尝试添加的类中有名为 File 的属性或方法吗?如果你输入 File 并悬停在上面,提示信息显示什么? - Maarten
@Maarten,我的整个应用程序中没有名为File的属性或方法。当我输入File时,它会变成蓝色,但是当我将鼠标悬停在上面时,工具提示显示了我发布的错误。我已经在导入中调用了System.IO命名空间,但我仍然遇到了这个错误,使用Damien建议的完全限定名称似乎可以解决它,真的很奇怪。 - Mohammad Sepahvand
2个回答

20

听起来你有一个方法在同一类中可见 (比方说),名叫 File。这将优先选择于System.IO.File。所以你需要完全限定名称:

System.IO.File.WriteAllBytes(tempfilenameandlocation, thePDFLetter);

事实上,问题中已经提供了足够的线索。它是Controller.File 在作用域内。


如果您输入 File( 而不是 File.,是否会出现任何智能感知? - Damien_The_Unbeliever
@MohammadSepahvand - 我问你是否获得了智能感知,而不是错误提示 - 实际上,你应该有智能感知,因为这是方法。 - Damien_The_Unbeliever
当我输入File(...)时,我确实可以获得智能感应。 - Mohammad Sepahvand
有任何快捷方式吗?我在控制器中多次调用 System.IO.File 方法,有没有一种方法可以省略每次引用整个内容? - Shimmy Weitzhandler
1
@Shimmy - 你可以通过using指令引入别名,例如 using IOFile = System.IO.File; - Damien_The_Unbeliever
显示剩余2条评论

1

控制器已经定义了一个用于以良好方式输出文件的文件。只需使用System.IO.File进行完全限定即可。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接