|
Call WCF Services Synchronously and Asynchronously
|
|||
---|---|---|---|
#18+
Всем привет. Недавно начал работать с системой на Silverlight 5. На сегодня все обращения к базе данных происходят асинхронно через WCF Ниже пример кода. Вопрос , можно ли из обратиться к WCFсервису синхронно для последующего binding к гриду в UI. Спасибо. -------------------------- [ServiceContract] public interface IMadicineService { [OperationContract(AsyncPattern = true)] IAsyncResult BeginGetPaticipationTypesAsync(AsyncCallback callback, Object state); List<DIC_ParticipationTypeMFPercent> EndGetPaticipationTypesAsync(IAsyncResult result); } public class MadicineService : IMadicineService { public IAsyncResult BeginGetPaticipationTypesAsync(AsyncCallback callback, object state) { List<DIC_ParticipationTypeMFPercent> madList = EntitiesFacade.GetPaticipationTypes(); return AsyncOperationHelper.BeginOperationAsync(madList, callback, state); } public List<DIC_ParticipationTypeMFPercent> EndGetPaticipationTypesAsync(IAsyncResult result) { return AsyncOperationHelper.EndOperationAsync<List<DIC_ParticipationTypeMFPercent>>(result); } } ---------------------------- public void GetParticipationTypes() { IMadicineService proxy = base.FactoryHelper.CreateChannel<IMadicineService>(new Util.ConfirmationChannelFactory<IMadicineService>()); proxy.BeginGetPaticipationTypesAsync(GetAllParticipationTypesCallback, proxy); } public void GetAllParticipationTypesCallback(IAsyncResult result) { ICommunicationObject channel = null; try { channel = result.AsyncState as ICommunicationObject; if (FactoryHelper.IsActive(channel) == false) { return; } List<DIC_ParticipationTypeMFPercent> Typeslist = ((IMadicineService)result.AsyncState).EndGetPaticipationTypesAsync(result); } catch (Exception ex) { RaiseOnDataLoadErrorOccured(); ExceptionHandler.Handle("hjkhjkh" + "\r" + ex.Message); } finally { this.FactoryHelper.DestroyChannel(channel); } } ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2012, 13:07 |
|
Call WCF Services Synchronously and Asynchronously
|
|||
---|---|---|---|
#18+
Borik2012Вопрос , можно ли из обратиться к WCFсервису синхронно для последующего binding к гриду в UI. А почему Вы думаете, что нельзя ? Более того синхронный доступ является наиболее распространённым. На клиенте инстанцируйте прокси-объект и пользуйтесь методами Open, затем вызов необходимого Вам метода службы (операции), когда данные получили вызываем Close у прокси. В службе [OperationContract] должен быть без аттрибута AsyncPattern (обычно так по-умолчанию). В вашем случае, в службу введите доп. метод, который будет выдавать данные синхронно. P.S. Для оформления кода пользуйтесь кныпочкой SRC - пост оформлен через ж..у, по-ламерски. Читать невозможно. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2012, 01:20 |
|
Call WCF Services Synchronously and Asynchronously
|
|||
---|---|---|---|
#18+
Спасибо. Нашел пример , если кому интересно http://www.codeproject.com/Articles/91528/How-to-Call-WCF-Services-Synchronously-and-Asynchr ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2012, 16:05 |
|
|
start [/forum/topic.php?fid=21&fpage=34&tid=1441585]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
37ms |
get topic data: |
13ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
others: | 304ms |
total: | 425ms |
0 / 0 |