Крейг Нойвирт ответил на это: http://groups.google.com/group/castle-project-users/browse_thread/thread/f440dbd05e60484f
Я думаю, вы можете быть немного озадачены нормальным асинхронным шаблоном C #.Он всегда включает пару начальных / конечных вызовов.
WCF Facility поддерживает 2 модели обратного вызова, которые определяются последними 2 аргументами вашего BeginWcfCall
2 варианта: 1) Action>, состояние 2) AsyncCallback, состояние
Вариант 1 является стандартным асинхронным шаблоном и выглядит следующим образом
_actService.BeginWcfCall(x => x.GetAct(new GetActRequest
{
ActName =
saveScheduleSlotRequest.ScheduleSlot.ActProxy.Name
}), (IAsyncResult result) =>
{
var response = _actService.EndWcfCall<GetActResponse>(result);
// Do something with the response
});
Как видите, для первого требуется ссылка на прокси _actService для вызова end.Первый - это удобный метод, которого нет.
_actService.BeginWcfCall(x => x.GetAct(new GetActRequest
{
ActName =
saveScheduleSlotRequest.ScheduleSlot.ActProxy.Name
}), (IWcfAsyncCall<GetActResponse> result) =>
{
var response = result.End();
// Do something with the response
});
Выбор того или иного подхода полностью зависит от ваших предпочтений стандартного асинхронного шаблона c #.