5
我想打一個屬性,讓我來指定用於財產的一些方法,這樣的方法參考:如何使屬性參數
public class MyClass
{
[MyAttribute(Converter="ConverterMethod")]
public string Prop { get; set; }
public static string ConverterMethod(string src)
{
return src + " converted";
}
}
什麼是「正確」的方式做到這一點?
這裏是我看到的方式:
- 製作字符串屬性和提取相應的方法與反思運行 期間
- 讓
Dictionary<string, Func<string, string>>
與運行時對應的方法來填充它。然後使用屬性的字符串屬性作爲關鍵字提取方法。這種方法更耐重構,如果我重命名方法一切都會工作(字典鍵將保持不變) - 使'IConverter'界面,並通過
typeof(ConverterImpl)
屬性。然後在運行時創建一個轉換器實例並使用其接口轉換值。這種方式似乎對我來說是最好的,但我從來沒有在屬性中使用Type
屬性,甚至不知道它們是否序列化良好。
哪種方法最好?還有其他方法嗎?人們通常如何做這種事情?