2012-11-05 13 views
6

Tôi đang làm việc trên ứng dụng Giao diện người dùng hiện đại và hiện tôi đang cố gắng truy cập tệp tài nguyên của ứng dụng (Resources.resw) từ hình nền. Cả hai đều trong các dự án khác nhau trong cùng một giải pháp. Tôi đã thử cách đó:Sử dụng tệp ứng dụng resw từ tác vụ nền

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

Nhưng tôi đã gặp lỗi vì không thể truy cập vào bản đồ tài nguyên.

Có cách nào cụ thể để làm điều đó không?

+0

Tôi đã thử cách khác xung quanh: đặt tệp resw trong một dự án chung được tham chiếu bởi cả ứng dụng và hình nền của tôi nhưng tôi cũng không thể thực hiện công việc đó. – Sicha

+0

Tôi đang cố gắng làm tương tự và bị kẹt quá, xem câu hỏi của tôi ở đây http://stackoverflow.com/questions/13363214/pass-parameters-to-ibackgroundtask – UrbanEsc

Trả lời

1

Cố gắng chỉ sử dụng tên của tệp tài nguyên. Nếu tên là MyResources.resw, thì hãy sử dụng:

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

Tệp của tôi là Resources.resw và tôi đã thử mọi biến thể * * Tài nguyên **, ** MyCommonProject/Resources **, ** MyCommonProject ** ... ngay cả khi không chỉ định tên tệp, nó không hoạt động. – Sicha

0

Tôi nghĩ điều bạn đang cố gắng làm là không thể. Resw có thể chỉ được truy cập khi trong dự án ứng dụng cửa hàng. Ít nhất đó là quan sát của tôi và tôi đã thử mọi thứ với kiến ​​thức của tôi.

Tuy nhiên, tôi có thể cung cấp giải pháp nếu bạn muốn chuyển tham số cho tác vụ nền của mình. Thêm tệp resw vào dự án Windows Store App của bạn. Khi bạn đăng ký tác vụ nền của mình, hãy viết cài đặt của bạn (hoặc bất kỳ thứ gì bạn cần để chuyển sang tác vụ nền) đến cài đặt cục bộ của thiết bị. Sau đó, từ tác vụ nền của bạn đọc cùng một cài đặt từ cài đặt cục bộ của bạn.

Nó không hoàn hảo nhưng nó hoạt động tốt. Tôi xin lỗi nếu điều này không giúp bạn.

2

Trong trường hợp bất kỳ ai gặp phải điều này.

Trong UWP, có vẻ như bạn không phải làm bất cứ điều gì đặc biệt để thực hiện công việc này. Nếu các tệp .resw được bao gồm trong dự án UWP chính, bạn có thể sử dụng trình tải tài nguyên để truy xuất chúng ngay cả từ nhóm nhiệm vụ nền. Đối với một nguồn tài nguyên chuỗi gọi LiveNotifications-ItemComplete, nó sẽ là như sau:

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

Hope this helps!

1

Mặc dù nó là một bài cũ, tôi nghĩ rằng tôi muốn gửi những phát hiện của tôi như là không ai trong số những gợi ý trong bài viết này đã làm việc cho tôi khi tôi cố gắng sử dụng nó với nhiệm vụ nền của tôi trong ứng dụng UWP của tôi dành cho Windows 10

Con đường tôi đạt được nó là như sau:

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

đâu

  • "Resources" là tên của .resw tập tin trong bạn "App \ Chuỗi \ en-US" hoặc "App \ Strings \ f r-FR "chẳng hạn.

  • "MyLocalizedKey" là chìa khóa thực tế của giá trị mà bạn muốn để có được từ các tập tin tài nguyên.

Hãy nhớ rằng nếu bạn sử dụng phương pháp này, bạn sẽ phải đặt tất cả các chuỗi của BackgroundTask trong ứng dụng chính.

Hy vọng điều này sẽ hữu ích.