What is different with PushStreamContent between web api & web api 2?

后端 未结 5 815
难免孤独
难免孤独 2021-02-05 23:34

I\'ve created two identical web api projects, one in VS 2012 and another in VS 2013, both targeting the 4.5 .net framework. The projects are based on Filip W\'s video download t

5条回答
  •  醉酒成梦
    2021-02-06 00:00

    This is a known issue with the C# spec. Check out this SO question - Compiler Ambiguous invocation error - anonymous method and method group with Func<> or Action

    When we introduced this overload that returns a Task, we did realize that it is a source level breaking change (though it doesn't break binary compatibility). We still went ahead with the change as not fixing it would cause more issues.

    And regarding how to fix it, you have two options -

    1. As Kiran suggested earlier, you can use the anonymous method syntax so that the compiler picks the right overload for you.
    2. You can use an explicit cast, like below,

      response.Content = new PushStreamContent((Action)video.WriteToStream, new MediaTypeHeaderValue("video/"+ext));

    BTW, be careful with that async void method. I suggest you to change its signature to

    public async Task WriteToStream(Stream outputStream, HttpContent content, TransportContext context)
    

提交回复
热议问题