2012-01-23 9 views
5

Estoy tratando de escribir una aplicación Silverlight usando el 'patrón' await/async (usando SL5 y VS11), pero no puedo seleccionar 'Generar operaciones basadas en tareas' en la configuración del servicio , se supone que esto es posible (todavía)? No se pueden encontrar muchos detalles en la web (específicos de SL) ...Servicio de datos basado en tareas en Silverlight

+0

Pude reproducir su situación: toda la sección "Cliente" del cuadro de diálogo Configuración de referencia del servicio está deshabilitada para los proyectos de SL. Es posible que desee abrir un problema de Microsoft Connect solo para que aparezca antes de que se publique VS11. –

+0

Gracias Stephen, así que no necesito administrarme a un hospital psiquiátrico para esto :) –

+0

Agregué un problema de MS Connect para esto, todavía no hay actividad allí: https://connect.microsoft.com/VisualStudio/ feedback/details/722368/await-async-pattern-in-sl5 –

Respuesta

0

He podido crear manualmente un proxy de servicio asíncrono basado en tareas en Silverlight 5 y Visual Studio 2010.
Funciona como el encanto.
Personalmente, prefiero codificar mis contratos y proxies de servicio de forma manual, pero si desea utilizar la referencia de Generar servicio, puede echar un vistazo al this post - WCF + Tasks.

+0

¿Cómo se relaciona esto con la funcionalidad await/async en VS11? (o Async CTP para el caso) –

+1

Por lo que yo sé, puede utilizar la sintaxis async/await con cualquier método que devuelva Tarea o Tarea . – ViktorZ

+1

@ViktorZ o Void –

0

Creo que no es compatible con Silverlight, pero puede hacerlo usted mismo, Tal vez una biblioteca de clases portátil sería otra solución para esto.

public class MyCServiceProxy 
{ 
    public static Task<ObservableCollection<MyC>> GetMyCs() 
    { 
     var tcs = new TaskCompletionSource<ObservableCollection<MyC>>(); 

     var client = new MyCServiceClient(); 

     client.GetMyCsCompleted += (s,e) => {}; 

     client.GetMyCsAsync(); 

     return tcs.Task; 
    } 
} 
Cuestiones relacionadas