我正在開發一個現代UI應用程序,我正在嘗試從backgroundtask訪問我的應用程序的資源文件(Resources.resw)。兩者都在同一解決方案中的不同項目中。 我試過這樣:從後臺任務中使用應用程序resw文件
ResourceLoader resources = new ResourceLoader("MyApp/Resources");
但我有一個arror,因爲它無法獲得的資源地圖。
有沒有具體的方法來做到這一點?
我正在開發一個現代UI應用程序,我正在嘗試從backgroundtask訪問我的應用程序的資源文件(Resources.resw)。兩者都在同一解決方案中的不同項目中。 我試過這樣:從後臺任務中使用應用程序resw文件
ResourceLoader resources = new ResourceLoader("MyApp/Resources");
但我有一個arror,因爲它無法獲得的資源地圖。
有沒有具體的方法來做到這一點?
嘗試只使用資源文件的名稱。如果名稱爲MyResources.resw,則使用:
ResourceLoader resources = new ResourceLoader("MyResources");
我的文件是Resources.resw,我試過每一個變化* *資源**,** MyCommonProject/Resources **,** MyCommonProject ** ...即使沒有指定文件名也不起作用。 – Sicha
我認爲你所要做的只是不可能。只有在商店應用程序項目中才能訪問Resw。至少這是我的觀察,我已經嘗試了所有我知道的事情。
但是我可以提供一個解決方案,如果你想傳遞參數到你的後臺任務。將resw文件添加到您的Windows應用商店應用項目。當您註冊後臺任務時,請將您的設置(或任何需要傳遞給後臺任務的設置)寫入設備的本地設置。然後,從後臺任務中讀取本地設置中的相同設置。
它並不完美,但效果很好。如果這不能幫助你,我很抱歉。
萬一有人遇到這種情況。
在UWP中,似乎你不必做任何特殊的事情來完成這項工作。如果.resw
文件包含在主UWP項目中,則可以使用資源加載器從後臺任務程序集檢索它們。對於資源字符串名爲LiveNotifications-ItemComplete,這將是以下幾點:
var resource = new ResourceLoader().GetString("LiveNotifications-ItemCompleted");
希望這有助於!
雖然這是一個老帖子,我想我會後我的調查結果沒有任何的建議,在這個崗位工作對我來說,當我試圖在我的UWP應用程序與我的後臺任務使用它爲Windows 10
的方式我實現它如下:
string str = ResourceLoader.GetForViewIndependentUse("Resources").
GetString("MyLocalizedKey");
凡
"Resources"
是.resw
文件在您的 「應用程序\字符串\ EN-US」 的名稱或「應用程序\字符串\˚F例如,「r-FR」。和
"MyLocalizedKey"
是要從資源文件中獲得價值的實際鍵。現在請記住,如果您使用此方法,則必須將您的BackgroundTask
的所有字符串放在主應用程序中。
希望這會有所幫助。
我嘗試了另一種方式:將resw文件放在我的應用程序和我的背景任務引用的通用項目中,但我無法做到這一點。 – Sicha
我想要做同樣的事情,也卡住,看到我的問題在這裏http://stackoverflow.com/questions/13363214/pass-parameters-to-ibackgroundtask – UrbanEsc