2013-07-09 12 views
5

Ich habe den folgenden Code gefunden:kann nicht kompilieren Request.Content.IsMimeMultipartContent() nicht

public class UploadController : ApiController 
{ 
    DBRepository _repository = new DBRepository(); 


    public Task<IEnumerable<FileDesc>> Post() 
    { 
     string folderName = "UploadedFiles"; 
     string PATH = HttpContext.Current.Server.MapPath("~/" + folderName); 
     PATH = @"c:\www\qqq"; 
     string rootUrl = Request.RequestUri.AbsoluteUri.Replace(Request.RequestUri.AbsolutePath, String.Empty); 


     if (Request.Content.IsMimeMultipartContent()) 
     { 
      var streamProvider = new CustomMultipartFormDataStreamProvider(PATH); 

      var task = Request.Content.ReadAsMultipartAsync(streamProvider).ContinueWith<IEnumerable<FileDesc>>(t => 
      { 

       if (t.IsFaulted || t.IsCanceled) 
       { 
        throw new HttpResponseException(HttpStatusCode.InternalServerError); 
       } 


       return fileInfo; 
      }); 

      return task; 
     } 
     else 
     { 
      throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.NotAcceptable, "This request is not properly formatted")); 
     } 

    } 
} 

aber ich habe Fehler:

Fehler 16 ‚System.Net.Http. HttpContent IsMimeMultipartContent‘enthält keine Definition für enthalten‚‘und keine Erweiterungsmethode ‚IsMimeMultipartContent System.Net.Http.HttpContent‘ein erstes Argument vom Typ akzeptieren‚‘gefunden werden (möglicherweise fehlt eine using Richtlinie oder eine Baugruppe Re ferenz?)

Fehler 17 'System.Net.Http.HttpContent' enthält keine Definition für 'ReadAsMultipartAsync' und keine Erweiterungsmethode 'ReadAsMultipartAsync' ein erstes Argument vom Typ ‚System.Net.Http akzeptieren. HttpContent ‚gefunden werden (möglicherweise fehlt eine using -Direktive oder ein Assemblyverweis?)

Fehler 18‚System.Net.Http.HttpRequestMessage‘enthält keine Definition für‚CreateResponse‘und keine Erweiterungsmethode ‘ CreateResponse 'akzeptiert ein erstes Argument des Typs ' System.Net.Http.HttpRequestMessage 'könnte gefunden werden (sind Sie mis singen ein mit Direktive oder einer Baugruppe Referenz?)

warum? Ich habe eine Baugruppe System.Net.Http.Formatting.dll zu projizieren und

using System.Net.Http.Formatting; 

auf Seite http://msdn.microsoft.com/ru-ru/library/hh834190(v=vs.108).aspx vorsichtig gesagt haben, dass dieser ext. Methode ist in System.Net.Http.Formatting (in System.Net.Http.Formatting.dll) Ich habe versucht, Projekt unter 4.0 und 4.5 - kein Effekt zu kompilieren.

PS. Ich habe eine Lösung mit dem gleichen Code, der perfekt funktioniert. Was kann ich tun?

+1

Die MSDN-Seite zu verlinken zeigt es im 'System.Net.Http' Namespace. Fehlt dir eine using-Anweisung? –

+0

danke! Wirklich dummer Fehler, ich habe es zweimal überprüft, aber auf jeden Fall verloren ... –

Antwort

8

In den folgenden Hinweis:

"mit System.Net.Http;"

{} s

+0

Ich habe das gleiche Problem, aber ich habe diese Referenz hinzugefügt und habe diese Zeile an der Spitze. Aber alles über "multipart" kann nicht gefunden werden. Gibt es noch etwas, das ich vermisst habe? –

+0

versuchen Sie, den Befehl 'update-package' @ Package Manager Console einzugeben –