我正在創建一個Windows 7移動版Silverlight項目。我使用Rest api進行身份驗證,使用類別身份驗證。我得到一個身份驗證令牌作爲響應,並將其分配給一個類屬性AuthToken,因爲我需要在不同的地方使用它。有什麼方法可以在會話或其他任何事情中存儲此AuthToken。因爲我沒有在wp7中找到任何會話示例。謝謝Windows Phone 7使用會話的Silverlight
回答
您沒有找到任何會話示例,因爲據我所知,WP7沒有會話。您應該可以使用獨立存儲來保持您的AuthToken。但請記住,它會在一段時間後過期,就像您期望會議一樣。
示例請參見以下或谷歌搜索獨立存儲: http://www.windowsphonegeek.com/tips/all-about-wp7-isolated-storage-store-data-in-isolatedstoragesettings
希望它能幫助。我沒有做過大量的WP7開發,但我對Silverlight很熟悉。
假設你只是想對當前應用程序實例的生命週期:
最簡單的答案是,它存儲爲靜態屬性,而不是一個實例的屬性。
簡單的答案是將它作爲你的Application類(App.xaml.cs)的一個屬性來存儲。然後你可以在任何地方使用((App)(Application.Current))來訪問它。令牌
不太簡單但可能更好的答案是將其存儲在ViewModel屬性中,然後可以通過ViewModel定位器訪問 - 以MVVM Light爲例。
在所有這些情況下,您需要考慮墓碑,如果用戶點擊「開始」然後點擊「後退」(例如)來恢復它。
如果你想臨時會話存儲(包括當用戶使用後退按鈕返回到你的應用程序的應用程序的生活),那麼你可以使用電話狀態。電話狀態與ASP.NET中的會話狀態類似。它只是一個帶有字符串鍵的(可序列化的)對象的字典,並不會在您的應用程序啓動時保留,但當您的應用程序從Back Stack導航到時,它會被恢復。
下面是一個例子的它的使用恢復一些名爲myObject的自定義對象:
private CustomObject myObject;
protected override void OnNavigatedFrom(NavigationEventArgs args)
{
//Save to State when leaving the page
PhoneApplicationService.Current.State["myObject"] = myObject;
base.OnNavigatedFrom(args);
}
protected override void OnNavigatedTo(NavigationEventArgs args)
{
if (PhoneApplicationService.Current.State.ContainsKey("myObject"))
{
//Restore from State
myObject = (CustomObject)PhoneApplicationService.Current.State["myObject"];
}
else
{
//No previous object, so perform initialization
myObject = new myObject();
}
}
如果你需要存儲的設置在您的應用程序的所有實例,然後看看IsolatedStorageSettings這是爲這個完美的。根據您的需要還有其他選項(Charles Petzold has a free eBook with some great examples)。
不確定爲什麼上面的代碼不適合你,但另一種選擇是使用使用IsolatedStorageSettings保存的應用程序屬性。這裏有一個例子:
在你App.xaml.cs:
public bool VibrationOn { get; set; }
private void Application_Launching(object sender, LaunchingEventArgs e)
{
LoadSettings();
}
private void Application_Activated(object sender, ActivatedEventArgs e)
{
LoadSettings();
}
private void Application_Deactivated(object sender, DeactivatedEventArgs e)
{
SaveSettings();
}
private void Application_Closing(object sender, ClosingEventArgs e)
{
SaveSettings();
}
private void LoadSettings()
{
IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings;
bool vo;
if (settings.TryGetValue<bool>("VibrationOn", out vo))
VibrationOn = vo;
else
VibrationOn = true;
}
private void SaveSettings()
{
IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings;
settings["VibrationOn"] = VibrationOn;
}
然後,您可以通過使用此代碼在任何地方訪問應用程序中的這個屬性:
if (Application.Current.VibrationOn)
{
VibrateController.Default.Start(TimeSpan.FromMilliseconds(200));
}
我正在使用上面的代碼。但是當我在任何其他類中獲得此值時,它不會加載保存的值。它只適用於當我使用斷點 – 2011-05-13 13:54:28
@Muhammad Zeeshan不知道爲什麼頁面狀態不適合你。對我來說,在我使用它的有限方式中這很好。我已經更新了我的答案,並且您可能會發現更適合您的情況的其他例子。如果您需要值過期,您還可以存儲日期時間對象,並在'LoadSettings'方法中檢查它。另一種選擇是在應用程序打開/關閉事件中不調用'LoadSettings' /'SaveSettings'方法,以便在重新啓動應用程序時將這些值恢復爲默認值(但將它們保留在後面狀態) – theChrisKent 2011-05-13 14:08:42
非常感謝作爲迴應。我使用schummbo的答案。它適用於我的情況。我已經投票給你了。 :) – 2011-05-13 15:12:15
- 1. 在Windows Phone 7上使用會話值
- 2. WPF的Silverlight/Windows Phone 7的
- 3. Windows Phone 7/Silverlight上的Hessian?
- 4. Windows phone 7 silverlight墓碑
- 5. 從Windows Phone 7/Silverlight調用Javascript函數
- 6. 的Windows Phone 7使用Silverlight - MediaElement的不使用此代碼
- 7. 的Windows Phone 7 \ Silverlight的SSH或Telnet庫
- 8. Windows Phone 7對話框
- 9. Windows Phone 7上的Silverlight Web內容
- 10. 的Windows Phone 7不加載Silverlight控件
- 11. silverlight windows phone 7中的按鈕問題
- 12. Windows Phone 7上的HMAC MD5/Silverlight
- 13. 支持Windows Phone 7和Silverlight的REST庫?
- 14. Silverlight for Windows Phone 7中的字體
- 15. Silverlight Windows Phone 7:從URL加載圖片
- 16. 商人在Windows Phone 7 + silverlight + C#
- 17. 在windows phone上寫xml silverlight 7
- 18. Windows Phone 7 Silverlight動態網格
- 19. Silverlight Windows Phone 7 ItemsControl數據綁定
- 20. Windows Phone 7 Silverlight MVVM(和其他)框架
- 21. Windows Phone 7:Silverlight和播放音樂
- 22. Windows Phone 7/Silverlight:如何做導航?
- 23. Windows Phone 7 - Silverlight對號顏色
- 24. Silverlight和Windows Phone 7 dll兼容性
- 25. Silverlight/Windows Phone 7相當於android.os.Handler
- 26. Silverlight類庫到Windows Phone 7類庫
- 27. Windows Phone 7從IsolatedStorage Silverlight綁定圖像
- 28. Silverlight Windows Phone 7:手勢事件?
- 29. Windows Phone 7/Silverlight/WPF MVVM開發
- 30. Windows phone 7 - 在Silverlight中可以使用它的相機嗎?
我使用上述碼。但是當我在任何其他類中獲取此值時,它不會加載保存的值 – 2011-05-13 13:54:38