none
Consumir WCF RRS feed

  • Pregunta

  • Buenos días, agradecería su ayuda con mi caso, estoy trabajando en asp.net core 1.0 y generé mi web service con WCF pero tengo un error ya que necesito recorrer una lista pero me genera error:foreach statement cannot operate on variables of type 'System.Threading.Tasks.Task<webService.XXX[]>' because 'System.Threading.Tasks.Task<webService.XXX[]>' does not contain a public definition for 'GetEnumerator' en lstFicha o como puedo contertir 

    Task<FichaTecnicaWCF[]> lstFicha = Ficha.ObtenerFichasTecnicasAsync(paginaInicial, tamanoPagina, producto, variedad); en una Ilist

      public IList<FichaTecnicaModel> ObtenerFichasTecnicas(int paginaInicial, int tamanoPagina, int producto, int variedad)
            {

    Task<ServicioWCF[]> lstFicha = Servicio.ObtenerTecnicasAsync(paginal, tamanoPagia, clase, valor); foreach (var servicioWcfc in lstFicha) { string seccion = string.Empty; if (servicioWcfc.Secciones != null) { foreach ( var fichaSeccion in servicioWcfc.Secciones.Where( fichaSeccion => fichaSeccion.Seccion_Id == 2 && !fichaSeccion.Privado)) { seccion = fichaSeccion.FichaSec_Desc; } } lstEntFicha.Add(new FichaTecnicaModel(servicioWcfc.Ficha_Id, string.Format("Registro ICA {0}. {1}", servicioWcfc.Ficha_Registro, servicioWcfc.Variedad_Nombre), string.Format("Adaptacion: {0}", seccion))); }

    return lstEntFicha;

    }


    Gracias por la ayuda


    yenni

    lunes, 11 de diciembre de 2017 16:25

Respuestas

Todas las respuestas

  • Hola, prueba a usar el método no Async

    var lstFicha = Servicio.ObtenerTecnicas(paginal, tamanoPagia, clase, valor);
    
    


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    lunes, 11 de diciembre de 2017 18:59
    Moderador
  • Hola, lo q pasa es que como agrego el webservice este automáticamente me trae los métodos de forma Async y no reconoce más

    yenni


    • Editado yenni lunes, 11 de diciembre de 2017 19:01 add
    lunes, 11 de diciembre de 2017 19:01
  • Revisa tu proxy a ver si te ha generado los métodos no asincronos. Hay una opción cuando generas el proxy que le indicas si quieres que te genere métodos asincronos. Vuelve a generar tu proxy desmarcado la opcion


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    lunes, 11 de diciembre de 2017 19:04
    Moderador
  • Disculpa y como los reviso?

    yenni

    lunes, 11 de diciembre de 2017 19:23
  • hola

    ese servicio WCF lo creaste tu? si es asi porque wcf y no webapi de net core ?

    ademas si usas async para invocarlo no deberias incluir el async y await

     WCF Task Based Async Pattern in .NET 4.5

    analzia el step 7

    alli veras como usa el await para esperar la respuesta asincrona

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    lunes, 11 de diciembre de 2017 20:00
  • Hola. Sitúa el cursor en ServicioWCF y pulsa F12. Irás a la definición de esa clase. De todas formas, has probado a usar el código que puse? 


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    lunes, 11 de diciembre de 2017 20:08
    Moderador
  • Hola Leandro el WCF no lo cree, este ya lo estaba consumiendo en c# pero ahora el proyecto donde se consume el WCF se rediseño y ahora se desarrolla en asp.net core 1.0 y la codificación que tenía me toca cambiarla.

    yenni

    lunes, 11 de diciembre de 2017 20:27
  • Es q según lo que leí los métodos no los genera no asyncrono, y cuando lo genero tampoco me da esa opción, por lo tanto no encuentra el método como tu lo colacaste; yo ya revisé la referencia y todo está asyncrono.

    yenni


    • Editado yenni lunes, 11 de diciembre de 2017 20:29
    lunes, 11 de diciembre de 2017 20:28