Hello tout le monde

Côté archi, j'ai mon RIA Services côté serveur qui appelle un service WCF hosté sur une autre machine

A l'heure actuelle, dans mon DomainService, je crée un nouveau proxy à chaque fois que j'en ai besoin, exemple:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
        [Query]
        public IEnumerable<Underlying> GetAllUnderlyings()
        {
            IEnumerable<Underlying> result;
            using (var service = new EMapsService.ServiceClient())
            {
                result = service.GetAllUnderlyings();
            }
 
            return result;
        }
 
        [Query]
        public IEnumerable<PricingTask> GetAllPricingTasks()
        {
            IEnumerable<PricingTask> result;
            using (var service = new EMapsService.ServiceClient())
            {
                result = service.GetAllPricingTasks();
            }
 
            return result;
        }
Mon service WCF est configuré comme tel:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
ConcurrencyMode = ConcurrencyMode.Multiple, InstanceContextMode = InstanceContextMode.PerSession
Le fait de créé un nouveau proxy à chaque fois implique une nouvelle instance de mon service à chaque appel et j'ai donc pas de "session".

L'idée est de faire un truc comme ça:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
        private EMapsService.ServiceClient eMapsService;
        private EMapsService.ServiceClient EMapsService
        {
            get
            {
                if (eMapsService == null)
                {
                    eMapsService = new EMapsService.ServiceClient();
                }
 
                return eMapsService;
            }
        }
 
        [Query]
        public IEnumerable<Underlying> GetAllUnderlyings()
        {

                return EMapsService.GetAllUnderlyings();

        }
Vous allez me dire que j'ai pas trop le choix si je veux pouvoir gérer une session mais quelles sont les différences entre les 2 façons de gérer mes proxies?

Merci