• 20 heures
  • Moyenne

Ce cours est visible gratuitement en ligne.

course.header.alt.is_video

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 29/06/2017

Découvrez la programmation asynchrone avec async et await

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

Téléchargez le fichier d'audiodescription : Partie 2, Chapitre 4
Vous trouverez sous la vidéo les codes source du cours.

Code source

Program.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace MonPremierClient
{
    class Program
    {
        static async void MaMethodeAsynchrone(string input, ServiceReference1.Service1Client client)
        {

            Console.WriteLine($"Prix de l'objet {input} : {await client.GetPriceAsync(input)}");
        }

        static void Main(string[] args)
        {
            var input = "";
            var client = new ServiceReference1.Service1Client();

            do
            {
                Console.WriteLine("Quel est le nom de l'objet dont vous voulez savoir le prix ?");

                input = Console.ReadLine();

                Task.Run(() => MaMethodeAsynchrone(input, client));
            } while (input != "quit");

            client.Close();
        }
    }
}

IService1.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;

namespace MonPremierServiceWCF
{
    [ServiceContract]
    public interface IService1
    {
        [OperationContract]
        float GetPrice(string id);

        [OperationContract]
        string GetData(int value);

        [OperationContract]
        CompositeType GetDataUsingDataContract(CompositeType composite);
    }


    [DataContract]
    public class CompositeType
    {
        bool boolValue = true;
        string stringValue = "Hello ";

        [DataMember]
        public bool BoolValue
        {
            get { return boolValue; }
            set { boolValue = value; }
        }

        [DataMember]
        public string StringValue
        {
            get { return stringValue; }
            set { stringValue = value; }
        }
    }
}

Service1.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;

namespace MonPremierServiceWCF
{
    public class Service1 : IService1
    {
        public float GetPrice(string id)
        {

            System.Threading.Thread.Sleep(10000);

            switch (id)
            {
                case "chaussures" :
                    {
                        return 49.0f;
                    }
                case "blouson" :
                    {
                        return 129.99f;
                    }
                case "voiture" :
                    {
                        return 32600.0f;
                    }
                default :
                    {
                        return 9999999.99f;
                    }
            }
        }

        public string GetData(int value)
        {
            return $"Valeur passée en paramètre : {value}";
        }

        public CompositeType GetDataUsingDataContract(CompositeType composite)
        {
            if (composite == null)
            {
                throw new ArgumentNullException("composite");
            }
            if (composite.BoolValue)
            {
                composite.StringValue += "Suffix";
            }
            return composite;
        }
    }
}
Exemple de certificat de réussite
Exemple de certificat de réussite