Communication RIA Services / WCF, un ou plusieurs proxies?
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:
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:
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:
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