6

次のコードがあります。

   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"));
        }

    }
}

しかし、エラーが発生しました:

エラー 16 「System.Net.Http.HttpContent」に「IsMimeMultipartContent」の定義が含まれておらず、「System.Net.Http.HttpContent」型の最初の引数を受け入れる拡張メソッド「IsMimeMultipartContent」が見つかりませんでした (ディレクティブまたはアセンブリ参照を使用していますか?)

エラー 17 'System.Net.Http.HttpContent' には 'ReadAsMultipartAsync' の定義が含まれておらず、タイプ 'System.Net.Http.HttpContent' の最初の引数を受け入れる拡張メソッド 'ReadAsMultipartAsync' が見つかりませんでした (ディレクティブまたはアセンブリ参照を使用していますか?)

エラー 18 'System.Net.Http.HttpRequestMessage' には 'CreateResponse' の定義が含まれておらず、'System.Net.Http.HttpRequestMessage' 型の最初の引数を受け入れる拡張メソッド 'CreateResponse' が見つかりませんでした (ディレクティブまたはアセンブリ参照を使用していますか?)

なぜ?アセンブリSystem.Net.Http.Formatting.dllをプロジェクトに追加して、

using System.Net.Http.Formatting;

ページhttp://msdn.microsoft.com/ru-ru/library/hh834190(v=vs.108).aspxで、この ext. メソッドは System.Net.Http.Formatting (System.Net.Http.Formatting.dll 内) にあります 4.0 および 4.5 でプロジェクトをコンパイルしようとしましたが、効果はありません。

PS。私は完全に機能する同じコードのソリューションを持っています。私に何ができる?

4

1 に答える 1

10

次の参照を追加します。

「System.Net.Http を使用;」

{} の

于 2015-06-03T20:39:54.763 に答える