Re: [NetPonto] WCF

17 views
Skip to first unread message

Cristovão Morgado

unread,
May 7, 2013, 11:43:32 AM5/7/13
to netp...@googlegroups.com
uma class static ou um padrão singleton deve resolver o teu problema.


2013/5/7 Joao Ferreira <jaferr...@gmail.com>
Boa tarde a todos,

Estou aqui com uma dúvida e nada melhor que partilhar com esta linda comunidade :D 

Bem basicamente o cenário é o seguinte : 

Desenvolvi uma aplicação ( Console Aplication ) que comunica com umas máquinas ( bem antigas ) através de Portas COM. Cada máquina destas só consegue responde a um pedido de cada vez... Basicamente posso inserir um carro, cancelar um carro ou buscar os valores de alguns testes que são feitos ao carro.

Esta aplicação tem como fim facilitar a integração de outras aplicações com estas máquinas. O que acontecia antigamente é que isto funcionava por ficheiros, a aplicação que queria integrar com estas máquinas escrevia um ficheiro numa pasta com uma determinada estrutura que dizia por exemplo para inscrever o carro e eu transformava aquilo para a linguagem da máquina.

O problema é que estas máquinas só respondem a um pedido de cada vez, basicamente a minha aplicação dinamicamente cria uma thread para cada máquina existente e vai metendo os pedidos numa "pilha" FIFO para tratar pedido a pedido e respondia para uma pasta de resultados.

Agora surgiu a necessidade de isto passar a ser um serviço e largar finalmente os Ficheiros... O meu problema é

Eu criei um serviço WCF que tem um metodo de request que simula aquilo que acontecia com as pastas antigamente.

A minha grande dúvida é como é que consigo ter uma Class comum a todos os pedidos que são feitos a este serviço WCF? Porque como cada máquina só responde pedido a pedido eu tenho de criar a tal pilha FIFO.

Não sei se me estou a explicar muito bem....Mas caso esteja um pouco(ou muito) complexo digam qualquer coisa...

Muito obrigado e um grande Abraço

--
--
Você recebeu esta mensagem por fazer parte da lista de discussão oficial da Comunidade NetPonto (http://netponto.org).
 
---
Recebeu esta mensagem porque está inscrito no grupo "NetPonto.org - Lista de Discussao Oficial" dos Grupos do Google.
 
Para anular a subscrição deste grupo e parar de receber emails deste grupo, envie um email para netponto+u...@googlegroups.com.
Para mais opções, consulte https://groups.google.com/groups/opt_out.
 
 



--
Cristovao Morgado
@TheSaintr

Rui Serrano

unread,
May 7, 2013, 11:52:34 AM5/7/13
to netp...@googlegroups.com


2013/5/7 Cristovão Morgado <cristova...@gmail.com>

Sérgio Agostinho

unread,
May 7, 2013, 12:02:31 PM5/7/13
to netp...@googlegroups.com
Basicamente, como Rui mostra no link anterior, deves ter o InstanceContextMode a Single. Tem atenção que se usares em conjunção com o ConcurrencyMode a Multiple, tens garantir que o teu código é "thread-safe" (por exemplo, se no teu caso usares uma Stack para guardar os valores, tens de garantir que tem um lock de modo a não haverem leituras e escritas ao mesmo tempo).
Sérgio Agostinho
Reply all
Reply to author
Forward
0 new messages