Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Task<> does not contain a definition for 'GetAwaiter'

Client

iGame Channel = new ChannelFactory<iGame> ( new BasicHttpBinding ( BasicHttpSecurityMode . None ) , new EndpointAddress ( new Uri ( "http://localhost:58597/Game.svc" ) ) ) . CreateChannel ( );  public Task<SerializableDynamicObject> Client ( SerializableDynamicObject Packet ) {     return Task<SerializableDynamicObject> . Factory . FromAsync ( Channel . BeginConnection , Channel . EndConnection , Packet , null ); } 

Contract

    [OperationContract ( AsyncPattern = true )]     IAsyncResult BeginConnection ( SerializableDynamicObject Message , AsyncCallback Callback , object State );      SerializableDynamicObject EndConnection ( IAsyncResult Result ); 

Service

public IAsyncResult BeginConnection ( SerializableDynamicObject Message , AsyncCallback Callback , object State ) {     dynamic Request = Message;     dynamic Response = new SerializableDynamicObject ( );     if ( Request . Operation = "test" )     {         Response . Status = true;     }     Response . Status = false;      return new CompletedAsyncResult<SerializableDynamicObject> ( Response ); }  public SerializableDynamicObject EndConnection ( IAsyncResult Result ) {     return ( Result as CompletedAsyncResult<SerializableDynamicObject> ) . Data; } 

Exposing Service from Silverlight Client

private async void myButton ( object sender , RoutedEventArgs e ) {     dynamic Request = new SerializableDynamicObject ( );     Request . Operation = "test";      var task = Client ( Request );     var result = await task;  // <------------------------------ Exception } 

Exception

Task<SerializableDynamicObject > does not contain a definition for 'GetAwaiter' 

What's wrong ?


Edit 1 :

Briefly,

Visual studio 2012 RC Silverlight 5 Application consumes Game WCF 4 Service hosted in ASP.net 4 Application with ChannelFactory technique via Shared Portable Library .NET4/SL5 contains the iGame interface with Async CTP

Graph :
ASP.NET <= Class Library ( Game ) <= Portable Library ( iGame ) => Silverlight


Edit 2 :

  • Microsoft.CompilerServices.AsyncTargetingPack.Silverlight5.dll is added in my SL5 Client
  • using System . Threading . Tasks;
like image 238
Ahmed Ghoneim Avatar asked Aug 07 '12 20:08

Ahmed Ghoneim


1 Answers

I had this issue in one of my projects, where I found that I had set my project's .Net Framework version to 4.0 and async tasks are only supported in .Net Framework 4.5 onwards.

I simply changed my project settings to use .Net Framework 4.5 or above and it worked.

like image 190
Zapnologica Avatar answered Sep 26 '22 01:09

Zapnologica