2008-09-26 46 views

Trả lời

29

Sử dụng ResourceManager. GetResourceSet() để biết danh sách tất cả các tài nguyên cho một nền văn hóa nhất định. ResourceSet trả về thực hiện IEnumerable (bạn có thể sử dụng foreach).


Để trả lời câu hỏi của Nico: bạn có thể đếm các yếu tố của một IEnumerable bởi đúc nó vào chung IEnumerable<object> và sử dụng phương pháp Enumerable.Count<T>() mở rộng, đó là mới trong C# 3.5:

using System.Linq; 

... 

var resourceSet = resourceManager.GetResourceSet(..); 
var count = resSet.Cast<object>().Count(); 
+0

nhất định thì tôi sẽ tính số tiền đó như thế nào? – bevacqua

+0

@Nico: IEnumerable không thực hiện thuộc tính Count nhưng bạn có thể lặp lại các mục nhập và đếm chúng. Ngoài ra, bạn có thể truyền RessourceSet tới IEnumerable và sử dụng phương thức mở rộng Count() mới trong C# 3.5: http://msdn.microsoft.com/en-us/library/system.linq.enumerable.count.aspx – VVS

+0

Có cách nào để lặp qua tất cả các nền văn hóa có sẵn không? Tôi đang cố gắng để viết một mẫu T4 tạo ra các tập tin json địa phương hóa từ các tập tin resx. – Santhos

1

Tôi tự hỏi tại sao bạn muốn lặp qua tất cả các tài nguyên.

Dù sao, ResourceManager cần được khởi tạo cho nó Type hoặc tên cơ sở để tra cứu tài nguyên. Sau đó, bạn sẽ có thể truy xuất số ResourceSet nhưng đối với một số CultureInfo, nếu bạn muốn lấy tất cả các tài nguyên cho một `ResourceManager

+0

Chúng tôi sử dụng nó cho phép quản trị viên khách hàng ghi đè lên các ngôn ngữ trong DB vì vậy chúng tôi cần một trang để hiển thị tất cả các tài nguyên mà họ có thể ghi đè. –

Các vấn đề liên quan