WCF + IObservable

0

Czy ktoś korzystał może mi podpowiedzieć jak wykorzystać IObservable w WCF?

Mam prosty serwis który implementuje poniższy Interface:

Kopiuj
[ServiceContract]
    public interface IService
    {
        [OperationContract]
        IObservable<List<int>> GetAll();
    }

Wszystko pięknie się kompiluje. Gdy wywołam metodę z serwisu to serwis wykonuje odpowiednią metodę, zwraca wynik a następnie po stronie UI leci wyjątek:
An exception of type 'System.ServiceModel.CommunicationException' occurred in mscorlib.dll but was not handled in user code

Additional information: Wystąpił błąd podczas odbierania odpowiedzi HTTP przez obiekt http://localhost:2222/

Wszystko działało cacy dopóty nie używałem IObservable.

Jakieś pomysły ?

DibbyDum
  • Rejestracja:ponad 12 lat
  • Ostatnio:ponad rok
  • Lokalizacja:Polska, Kraków
0

Pytanie a czemu IObservable chcesz wysyłać jakieś powiadomienia do klientów?


Yubby dibby dibby dibby dibby dibby dibby dum..
4p
Zgaduje ze chodzi o to by łatwiej obsłużyć kod async-owy po stronie UI.
DibbyDum
Hmm ale jak chcesz async to po stronie klienta to jak dodajesz taki serwis to masz od razu wygenerowane metody asynchroniczne, nie bardzo mam pomysł w czym miałby IObservable pomóc. A tak w ogóle to @y_ odpowiadaj na temat w postach! ;-)
4p
  • Rejestracja:ponad 9 lat
  • Ostatnio:ponad 6 lat
  • Postów:28
1

@DibbyDum tak, dokładnie. IObservable jako response z WCF serwisu (jeszcze po HTTP, bo pod spodem bedzie polling a nie push) nie mam sensu. Client ma metody Async, które można po stronie UI przemienić na IObservable<T> korzystając z Observable.Create

0

Korzystam z "IObservable" aby ładnie obsłużyć odpowiedzi po stronie UI za pomocą Rx.

Chciałem wykorzystać takie podejście aby po stronie UI bezpośrednio konsumować sobie serwis bez pisania dodatkowego kodu.

Niestety mankament jaki widzę w pisaniu ServiceProxyClient-a po stronie UI że duplikuje kod i tworzę kolejny interfejs z prawie taką samą funkcjonalnością.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.