我們有一個Silverlight應用程序需要在應用程序退出前保存一些數據。我們正在使用RIA服務,並實施IApplicationLifetimeAware界面。我們看到SubmitChanges方法被調用,但從來沒有看到回調(參見下面的僞代碼)。此外,我們看到,當我們調用SubmitChanges時,從來沒有通過電話發送任何請求。有沒有辦法做到這一點?當應用程序退出時,RIA服務不提交
public class ApplicationLifetimeMessenger : IApplicationService, IApplicationLifetimeAware
{
private DomainContext context;
public void Exiting()
{
context.SubmitChanges(OnSubmitCompleted);
}
private void OnSubmitCompleted(SubmitOperation op)
{
// Never gets here
}
// Other interface methods
}
可能保持while循環活着而'DomainContext.HasChanges'是'真' –
如果我有一個循環,應用程序只是掛起。永遠不會有通過線路發送的提交請求,所以域上下文始終有變化。 – Tevin
好吧,那麼只有在用戶點擊關閉時才提供建議,即使ApplicationLifeTimeMessenger被調用之前,上下文也不會發生變化。因爲你正在處理異步調用。如果您有任何更改,可能需要一段時間才能返回。 –