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

时间:2012-12-19 08:04:51

标签: c# asp.net-mvc file

我正在尝试创建我的数据库中的文件副本作为字节数组,我正在寻找最简单的方法来实现这一点,并且在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开头。

2 个答案:

答案 0 :(得分:19)

听起来你有一个方法,你可以看到(在同一个类中,称为File)。这将优先选择System.IO.File。因此,您需要完全限定名称:

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

(事实上,问题中有足够的线索。这是范围内的Controller.File

答案 1 :(得分:1)

控制器已经定义了一个文件,用于以一种很好的方式输出文件。只需使用System.IO.File

完全限定它