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 :
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With