Tôi đang viết một ứng dụng win8 và sẽ sử dụng hệ thống quản lý tài nguyên được tích hợp sẵn: resw
và x:Uid
thẻ trong mã XAML của tôi.Nội dung tài nguyên: sử dụng x: Uid tham chiếu đến tài nguyên của một assembly khác
Vì vậy, tôi tạo ra chúng ta hãy nói một TextBox
như thế:
<TextBlock Style="{StaticResource HeaderTextStyle}" x:Uid="ResourceTest"/>
tôi tạo ra các tập tin tài nguyên tương ứng trong lắp ráp của tôi với một mục ResourceTest.Text
và nó hoạt động tốt: văn bản thích hợp sẽ được hiển thị khi chạy.
Bây giờ, tôi muốn chuyển tất cả các tệp resx của mình sang Thư viện C# khác để bảo trì. Vì vậy, tôi đặt các tập tin tài nguyên trong một dự án hoàn toàn mới và tham khảo hội đồng mới này từ hội đồng chính.
Nhưng điều này làm cho cấu trúc trước đó bị lỗi (không hiển thị văn bản).
Tuy nhiên, nếu tôi lập trình lấy lại giá trị tài nguyên sử dụng đoạn mã sau từ bên trong lắp ráp bên (gọi là ResourcesLibrary), tôi nhận được chuỗi một cách chính xác:
static ResourceLoader resourceLoader = null;
public static string GetString(string resourceName)
{
if (resourceLoader == null)
resourceLoader = new ResourceLoader ("ResourcesLibrary/Resources");
return resourceLoader.GetString (resourceName);
}
Làm thế nào để kích hoạt các cơ chế x:Uid
khi giao dịch với các tài nguyên ngoài lắp ráp?
Tôi đã thử một vài điều trong số x:Uid
chẳng hạn như ResourcesLibrary/Resources/ResourceTest
nhưng không có may mắn.
Bạn đã tìm thấy giải pháp từ khi đặt câu hỏi chưa? Tôi đang đối mặt với cùng một vấn đề ngay bây giờ. –
không, tôi đã quay trở lại sử dụng cùng một hội đồng, không có thời gian để điều tra. – Mic
Trên thực tế, chúng tôi đã kết thúc bằng cách sử dụng công cụ này để tạo mã-đằng sau lớp học để gửi lại tài nguyên tập tin, hoạt động như một sự quyến rũ ngay cả khi resw trong một hội đồng khác: http://reswcodegen.codeplex.com/ –