2012-11-05 12 views
6

Pracuję nad aplikacją Modern UI, a obecnie próbuję uzyskać dostęp do pliku zasobów mojej aplikacji (Resources.resw) z tła. Oba są w różnych projektach w tym samym rozwiązaniu. Próbowałem w ten sposób:Używanie pliku resw aplikacji z zadania tła

ResourceLoader resources = new ResourceLoader("MyApp/Resources"); 

Ale Mam arror ponieważ nie mogą dostać się do mapy zasobów.

Czy istnieje specjalny sposób, aby to zrobić?

+0

Próbowałem na odwrót: wstawienie pliku resw do projektu wspólnego, do którego odnosi się zarówno moja aplikacja, jak i moje zadanie tła, ale nie mogę tego również wykonać. – Sicha

+0

Próbuję zrobić to samo i utknąłem też, zobacz moje pytanie tutaj http://stackoverflow.com/questions/13363214/pass-parameters-to-ibackgroundtask – UrbanEsc

Odpowiedz

1

Spróbuj użyć tylko nazwy pliku zasobów. Jeśli nazwa jest MyResources.resw, a następnie użyć:

ResourceLoader resources = new ResourceLoader("MyResources"); 
+0

Mój plik to Resources.resw i próbowałem każdej odmiany * * Zasoby **, ** MyCommonProject/Resources **, ** MyCommonProject ** ... nawet jeśli nie określa się nazwy pliku, to nie działa. – Sicha

0

myślę, co chce zrobić, nie jest po prostu możliwe. Prawdopodobnie dostęp do Resw jest możliwy tylko w projekcie aplikacji sklepu. Przynajmniej to jest moja obserwacja i próbowałem wszystkiego, co wiem.

Mogę jednak zaoferować rozwiązanie, jeśli chcesz przekazać parametry do zadania w tle. Dodaj plik resw do projektu aplikacji Windows Store. Po zarejestrowaniu zadania w tle zapisz ustawienia (lub cokolwiek jest potrzebne, aby przejść do zadania w tle) do ustawień lokalnych urządzenia. Następnie z poziomu zadania w tle odczytaj to samo ustawienie z ustawień lokalnych.

Nie jest idealny, ale działa dobrze. Przepraszam, jeśli to nie pomoże.

2

Jeśli ktoś się z tym spotka.

W UWP wydaje się, że nie musisz robić nic specjalnego, aby to zadziałało. Jeśli pliki .resw są uwzględnione w głównym projekcie UWP, można użyć modułu ładującego zasoby, aby pobrać je nawet z zespołu zadania w tle. Dla zasobu ciąg nazywa LiveNotifications-ItemComplete byłoby następujące:

var resource = new ResourceLoader().GetString("LiveNotifications-ItemCompleted");

nadzieję, że to pomaga!

1

Mimo to stary post, myślałem, że po mojej ustaleń, żaden z sugestiami na tym stanowisku pracował dla mnie, gdy próbowałem go używać z mojego zadania w tle w moim UWP aplikacji dla Windows 10.

sposób, w jaki uzyskuje się to następująco:

string str = ResourceLoader.GetForViewIndependentUse("Resources"). 
      GetString("MyLocalizedKey"); 

Gdzie

  • "Resources" jest nazwa pliku w "App \ string \ en-US" .resw lub „App \ Struny \ f r-FR "na przykład.

i

  • "MyLocalizedKey" jest rzeczywisty klucz wartości chcesz uzyskać z pliku zasobów.

Teraz pamiętaj, że jeśli użyjesz tej metody, będziesz musiał umieścić wszystkie ciągi swojego BackgroundTask w głównej aplikacji.

Mam nadzieję, że to pomoże.

Powiązane problemy