我正在爲客戶端開發業務線應用程序。客戶端指定了本來應該使用的設備(某些帶有Windows 8.1的戴爾平板電腦)。現在,開發幾乎完成了,我們準備發佈第一階段的應用程序,客戶告訴我們他們已經改變了主意,所有戴爾平板電腦都將運行Windows 10.我升級了一款用於開發的平板電腦並測試到Windows 10。平板電腦使用RESTful Web API來訪問存儲在存儲庫中的數據。很顯然,在應用程序可以從存儲庫中檢索任何數據之前,必須在應用程序的設置中配置Web API的URL。 因此,我創建應用程序包以在平板電腦上裝載應用程序。安裝工作正常,該應用第一次啓動良好。我進入設置,設置網址並關閉應用程序。 當我嘗試重新啓動時,該應用程序卡住顯示啓動畫面。如果我嘗試訪問「設置」,則會通知我當時的應用設置不可用。解決這個問題的唯一方法是卸載應用程序並重新安裝。訪問Windows 10中的本地設置
這是我用它來保存和檢索設置代碼:
public void SaveSetting<T>(string settingName, T value)
{
ApplicationData.Current.LocalSettings.Values[settingName] = value;
}
public T GetSetting<T>(string settingName)
{
var localSettings = ApplicationData.Current.LocalSettings.Values;
if (localSettings.ContainsKey(settingName))
{
var value = localSettings[settingName];
if (value is T)
{
return (T)value;
}
}
// else, in all other cases
return default(T);
}
我注意到一個有趣的事情是,有時,這取決於我嘗試在設置信息的保存,應用程序啓動。例如,我正在玩它,並試圖保存一些垃圾,而不是正確的URL。因此,而不是「http://x.x.x.x:nnnnn」我保存了「a」。該應用程序啓動正確,我通過了啓動畫面,但顯然,我無法獲得任何數據。
關於究竟發生了什麼的任何想法?本地設置的訪問方法是否在Windows 10中更改?
過去幾天裏我一直在爲此撓頭。最初,我認爲這是創建本地設置文件的權限問題,因此我從這個角度投入了大量精力試圖找到解決方案。但是,正如我所說的,如果我在設置中轉儲了一些垃圾,它就會起作用,所以這不是權限問題。難道它和IP地址像「x.x.x.x」需要以不同於字符串的方式保存嗎?
任何意見將不勝感激。
TIA, 埃迪
在我添加了一些日誌到我的應用程序後,我能夠證明應用程序沒有讀取設置的問題。這是它試圖對他們做的事情,它不起作用。從設置中讀取的URL是正確的,但是當應用程序試圖調用Web API時,調用引發異常,應用程序停止工作。這個論壇的經理之一可以關閉這個問題嗎?謝謝,埃迪 – Eddie