Chúng ta có thuộc tính Description
cho Enums trong CLI dot net không? (Dot Net Core RC2) Nếu không, thay thế nào?Thuộc tính mô tả Enum trong lõi dotnet
9
A
Trả lời
11
Đối với 1.0 và 1.1, DescriptionAttribute
hiện nằm trong gói System.ComponentModel.Primitives
NuGet.
3
DescriptionAttribute
was added to CoreFX, nhưng chỉ sau RC2. Vì vậy, nó sẽ có trong phiên bản RTM, nhưng không phải trong RC2. Tùy thuộc vào những gì bạn muốn làm, việc tạo thuộc tính của riêng bạn có thể hoạt động.
5
Tôi sử dụng này để thực hiện Net Framework tôi:
public static class EnumerationExtension
{
public static string Description(this Enum value)
{
// get attributes
var field = value.GetType().GetField(value.ToString());
var attributes = field.GetCustomAttributes(typeof(DescriptionAttribute), false);
// return description
return attributes.Any() ? ((DescriptionAttribute)attributes.ElementAt(0)).Description : "Description Not Found";
}
}
này không làm việc cho Netcore vì vậy tôi sửa đổi nó để làm điều này:
public static class EnumerationExtension
{
public static string Description(this Enum value)
{
// get attributes
var field = value.GetType().GetField(value.ToString());
var attributes = field.GetCustomAttributes(false);
// Description is in a hidden Attribute class called DisplayAttribute
// Not to be confused with DisplayNameAttribute
dynamic displayAttribute = null;
if (attributes.Any())
{
displayAttribute = attributes.ElementAt(0);
}
// return description
return displayAttribute?.Description ?? "Description Not Found";
}
}
Enumeration Ví dụ:
public enum ExportTypes
{
[Display(Name = "csv", Description = "text/csv")]
CSV = 0
}
Cách sử dụng mẫu để thêm tĩnh:
var myDescription = myEnum.Description();
Các vấn đề liên quan
- 1. Bản địa hóa các thuộc tính mô tả enum
- 2. hiển thị mô tả Enum trong jqGrid thay vì Enum
- 3. Tìm một giá trị enum bởi thuộc tính mô tả của nó
- 4. Dữ liệu ràng buộc các thuộc tính enum thành lưới và hiển thị mô tả
- 5. Automapper: Bản đồ một Enum tới [Mô tả] của nó thuộc tính
- 6. WPF Ràng buộc một ListBox vào một enum, hiển thị các thuộc tính mô tả
- 7. Tệp khóa lõi Dotnet
- 8. AOP trong lõi Dotnet: Proxy động với Proxy thực trong lõi DotNet
- 9. cách bản địa hóa mô tả thuộc tính trong C#?
- 10. Bind Combobox với Enum Mô tả
- 11. Cách hiển thị mô tả lớp học, mô tả thuộc tính và mô tả hoạt động của jmx MBeans
- 12. lõi dotnet PackageReference vs DotNetCliToolReference
- 13. Chạy thử nghiệm NUnit trong lõi dotnet
- 14. Làm cách nào để truy cập thuộc tính Mô tả trên thuộc tính hoặc một const trong C#?
- 15. Tạo bộ mô tả thuộc tính cho mỗi trường hợp?
- 16. Cách xóa vùng mô tả khỏi lưới thuộc tính?
- 17. Biên soạn nhiều dự án DotNet lõi trong một bước sử dụng DotNet cli
- 18. Thuộc tính cờ Enum
- 19. Thiết lập lõi DotNet không thành công
- 20. Làm cách nào để thêm moq làm phụ thuộc trong lõi của dotnet?
- 21. Mô tả tính năng trong xử lý hình ảnh (thuật toán hoặc mô tả) là gì?
- 22. MethodBuilder, ModuleBuilder và AssemblyBuilder ở đâu trong lõi dotnet?
- 23. Dự án lõi mới của dotnet không thể khôi phục
- 24. Tại sao một @objc enum có một mô tả khác với một enum tinh khiết Swift?
- 25. tệp thuộc tính java dưới dạng enum
- 26. Lọc NSMutableArray dựa trên thuộc tính enum
- 27. Các thuộc tính Enum HWND C++
- 28. iTextSharp: Bất kỳ hỗ trợ nào cho lõi dotnet (netstandard1.6)?
- 29. Visual Studio Mac không tương thích với lõi dotnet 2
- 30. xây dựng lõi dotnet song song hoặc đồng thời