Nếu bạn lưu trữ các giá trị thuộc tính mặc định vào một tài sản (Name
trong ví dụ của tôi) về xây dựng, sau đó bạn có thể sử dụng một phương pháp Thuộc tính helper tĩnh:
using System;
using System.Linq;
public class Helper
{
public static TValue GetMethodAttributeValue<TAttribute, TValue>(Action action, Func<TAttribute, TValue> valueSelector) where TAttribute : Attribute
{
var methodInfo = action.Method;
var attr = methodInfo.GetCustomAttributes(typeof(TAttribute), true).FirstOrDefault() as TAttribute;
return attr != null ? valueSelector(attr) : default(TValue);
}
}
Cách sử dụng:
var name = Helper.GetMethodAttributeValue<MyAttribute, string>(MyMethod, x => x.Name);
My giải pháp dựa trên giá trị mặc định được đặt khi xây dựng thuộc tính, như sau:
internal class MyAttribute : Attribute
{
public string Name { get; set; }
public MyAttribute(string name)
{
Name = name;
}
}
Nguồn
2017-02-12 18:18:11
Ngoài ra còn có phiên bản chung (bạn không cần phải đúc!) Của các phương thức này được triển khai dưới dạng phần mở rộng trong phiên bản mới hơn của .net (tôi nghĩ sau 4.0), vì vậy khách truy cập, xem các câu trả lời khác với câu trả lời – Mafii