Заменить средство получения / установки свойства на Reflection или аналогичный (без сторонних библиотек) в C #

У меня есть свойство, содержащееся в классе, например

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 .

Я прочитал некоторые вопросы здесь и в Интернете, но не могу найти ответа, который бы не использовал какую-либо библиотеку аспектов.

Может ли кто-нибудь из провайдеров указать на установку методов Get / Set на время выполнения? В идеале для делегата вроде

x =>_data[keyDefinedByAttribute]; 
6
задан Mike Miller 26 July 2011 в 19:52
поделиться