Pracuję nad projektem, w którym aplikacja internetowa jest hostowana na serwerach internetowych wywołania usług WCF hostowanych na serwerze aplikacji. Proxy dla WCF połączeń jest tworzony przez ChannelFactory i połączenia są za pośrednictwem kanału, przykładowo:Asyncowe wywołanie WCF z ChannelFactory i CreateChannel
(z pominięciem użyciu bloku)
var factory = new ChannelFactory<IUserService>(endpointConfigurationName);
var channel = factory.CreateChannel();
var users = channel.GetAllUsers();
Jeśli dobrze rozumiem to również wywołać poprzez kanał jest asynchroniczny i gwint na serwerze WWW jest bezczynnie podczas żądania i po prostu poczekaj na odpowiedź.
Chciałbym, aby połączenia asynchronicznie tak:
var users = await channel.GetAllUsersAsync();
Czy istnieje sposób, jak uczynić rozmowę z ChannelFactory i kanałów async? Nie znalazłem żadnego. Wiem, że mogę generować asynchroniczne metody przez svcutil/Add service reference, ale nie chcę tego robić. Nie chcę też zmieniać interfejsu usługi na serwerze aplikacji (IUserService), dodając metody asynchroniczne.
Czy jest jakiś sposób wywołania metod async z ChannelFactory? Dzięki.
dziękuję za odpowiedź. Czy masz jakąś wskazówkę/link o tym, jak tworzyć niestandardowe opakowania wokół kanału? Zbadałem sprawę, ale niczego nie znalazłem. – Michal