Tôi đã nhìn thấy nhiều câu hỏi và câu trả lời về việc ánh xạ chuỗi tới enums và ngược lại, nhưng làm thế nào tôi có thể ánh xạ một chuỗi các chuỗi được bản địa hóa thành các enums?Làm cách nào để quốc tế hóa các chuỗi đại diện cho các giá trị enum C#?
Tôi có nên tạo một extension method like this trả về chuỗi thích hợp từ tệp tài nguyên không? Có cách nào để bản địa hóa các thuộc tính (như "Mô tả") được sử dụng trong solutions like this không?
Giải pháp được ưu tiên - phương pháp hoặc thuộc tính mở rộng. Dường như với tôi rằng đây không phải là mục đích của các thuộc tính. Trong thực tế, bây giờ tôi nghĩ về nó, nếu tôi sử dụng một phương thức mở rộng, một thuộc tính có vẻ như cái gì đó tôi muốn sử dụng để chỉ định một khóa trong một tệp tài nguyên cho chuỗi đã bản địa hóa mà tôi muốn sử dụng thay cho giá trị enum.
EDIT - ví dụ:
Với enum sau,
public enum TransactionTypes {
Cheque = 1,
BankTransfer = 2,
CreditCard = 3
}
Tôi muốn một cách để ánh xạ từng loại thành một chuỗi cục bộ. Tôi bắt đầu với một phương thức mở rộng cho enum sử dụng một câu lệnh switch và các tham chiếu mạnh mẽ được nhập vào tệp tài nguyên.
Tuy nhiên, một phương pháp mở rộng cho mọi enum dường như không phải là một giải pháp tuyệt vời. Tôi đã bắt đầu theo dõi this để tạo thuộc tính tùy chỉnh cho từng giá trị được liệt kê. Thuộc tính có tên cơ sở và khóa cho tệp tài nguyên chứa chuỗi được bản địa hóa. Trong ví dụ trên, ví dụ, tôi có điều này:
...
[EnumResourceAttribute("FinancialTransaction", "Cheque")]
Cheque = 1,
...
Trong trường hợp "FinanacialTransaction" là tệp resx và "Kiểm tra" là khóa chuỗi. Tôi đang cố gắng tạo một phương thức tiện ích mà tôi có thể chuyển bất kỳ giá trị nào từ bất kỳ kiểu liệt kê nào và nó trả về biểu diễn chuỗi cục bộ của giá trị đó, giả định thuộc tính tùy chỉnh được chỉ định. Tôi chỉ không thể tìm ra cách để truy cập động một tệp tài nguyên và một khóa trong đó.
+1 Tôi là 1 phút quá muộn :) –
tôi cần phải có được rõ ràng hơn - Tôi sẽ không sử dụng bất cứ điều gì khác hơn các tệp tài nguyên (chúng tôi đã sử dụng chúng cho mọi thứ khác cần i18n). Tôi đang tìm các giải pháp để lập bản đồ các chuỗi tài nguyên để liệt kê. – Matt
@Duke: Được rồi, nó không phải là quá rõ ràng những gì bạn muốn sau đó - Tôi đã cập nhật câu trả lời của tôi với một phương pháp mở rộng rất đơn giản, nhưng tôi nghi ngờ bạn sau một cái gì đó nhiều hơn ... –