Tôi muốn làm một thuộc tính mà sẽ cho phép tôi để xác định một số phương pháp áp dụng cho bất động sản, như thế này:Làm thế nào để làm tài liệu tham khảo phương pháp trong tham số thuộc tính
public class MyClass
{
[MyAttribute(Converter="ConverterMethod")]
public string Prop { get; set; }
public static string ConverterMethod(string src)
{
return src + " converted";
}
}
cách 'đúng' để làm điều đó là gì?
Dưới đây là những cách mà tôi thấy: sở hữu chuỗi
- Make và chiết xuất phương pháp tương ứng với phản ánh trong thời gian chạy
- Hãy
Dictionary<string, Func<string, string>>
và cư nó với các phương pháp tương ứng trong thời gian chạy. Sau đó, trích xuất phương thức sử dụng thuộc tính chuỗi của thuộc tính làm khóa. Phương pháp này có khả năng chống lại quá trình tái cấu trúc, nếu tôi đổi tên tất cả mọi thứ sẽ hoạt động (phím từ điển sẽ vẫn giữ nguyên) - Giao diện 'IConverter' và vượt qua
typeof(ConverterImpl)
để gán. Sau đó tạo một thể hiện của bộ chuyển đổi trong thời gian chạy và sử dụng giao diện của nó để chuyển đổi các giá trị. Bằng cách này có vẻ tốt nhất với tôi nhưng tôi không bao giờ sử dụng tài sảnType
trong thuộc tính và thậm chí không biết nếu chúng được tuần tự hóa tốt.
Phương pháp nào là tốt nhất? Có cách tiếp cận nào khác không? Mọi người thường làm những việc như thế nào?