Làm cách nào để lặp lại tất cả các tài nguyên trong trình quản lý tài khoản?Lặp qua tất cả các Tài nguyên trong ResourceManager - C#
Tức là: foreach (tài nguyên chuỗi trong ResourceManager) // Làm điều gì đó với nguồn cấp lại.
Cảm ơn
Làm cách nào để lặp lại tất cả các tài nguyên trong trình quản lý tài khoản?Lặp qua tất cả các Tài nguyên trong ResourceManager - C#
Tức là: foreach (tài nguyên chuỗi trong ResourceManager) // Làm điều gì đó với nguồn cấp lại.
Cảm ơn
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();
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
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 đè. –
nhất định thì tôi sẽ tính số tiền đó như thế nào? – bevacqua
@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
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