Я смотрю на это:
public interface IAjaxCallbackEventHandler : ICallbackEventHandler
{
string CallbackResponse { get; set; }
}
}
Таким образом, страницы реализуют этот интерфейс и в итоге выглядят так:
public partial class XPage : Page, IAjaxCallbackEventHandler {
// public because it's an interface, but really an implementation detail ;-(
public string CallbackResponse { get; set; }
// implementing underlying ICallbackEventHandler interface
public void RaiseCallbackEvent(string eventArgument)
{
try
{
CallbackResponse = SomeOperation(eventArgument);
}
catch (Exception ex)
{
CallbackResponse = ex.ToString();
}
}
// implementing underlying ICallbackEventHandler interface
public string GetCallbackResult()
{
return CallbackResponse;
}
}
Насколько я могу судить, этот интерфейс просто гарантирует, что программисту придется подумать о сохранении ответа от RaiseCallbackEvent
, который затем будет возвращен после вызова GetCallbackResult
.
Я не вижу каких-либо реальных преимуществ этой техники, так как вы уже должны реализовать и подумать о двух методах, которые делают это.
Ваши мысли - какие-либо действительные преимущества этого подхода или это просто запах кода?