Например, у меня есть свойство, содержащееся в классе.
public class Greeter {
private Hashtable _data;
public string HelloPhrase { get; set; }
public Greeter(data) {
_data = data;
}
}
Что я хотел бы сделать, так это добавить атрибут к свойству HelloPhrase, например
[MyCustomAttribute("Hello_Phrase")]
public string SayHello { get; set; }
Таким образом, во время конструктора я могу отразить свойства в классе (Greeter), где был определен MyCustomAttribute, и установить методы Get/Set свойства для анонимного метода/делегата.
public Greeter(data) {
_data = data;
ConfigureProperties();
}
Мне удалось получить PropertyInfo из класса, но это предоставляет только GetSetMethod (http://msdn.microsoft.com/en-us/library/system.reflection.propertyinfo.getsetmethod.aspx) и соответствующий GetGetMethod.
Я прочитал некоторые вопросы здесь и в Интернете, но не могу найти ответ, который не использует какую-либо библиотеку Aspects.
Может ли кто-нибудь предоставить указатели на настройку методов Get/Set во время выполнения? В идеале делегату вроде
x =>_data[keyDefinedByAttribute];