Re[2]: Вызов SetValue, GetValue в InstanceType с параметрами
От: Nonick  
Дата: 14.02.08 14:02
Оценка:
Здравствуйте, Блудов Павел, Вы писали:

БП>Здравствуйте, Nonick, Вы писали:


N>>Хотелось бы знать мнение Игоря, Павла а также всех заинтересованных по поводу того, не закинуть ли такую фичу в BLT. Спасибо.

БП>А можно подробней, откуда такая надобность появилась?
БП>Вроде как GetValue+SetValue в .net не считается за comme il faut?
БП>Наверное старый добрый COM interop?

Нет, все проще.
Приведу пример, из него, думаю, будет понятно




class EntityBase{

  [InstanceType(typeof(ValueBox<int>))]
  public abstract int IntProp { get; set; }
}


struct ValueBox<T>  {
  private T _value;

  [GetValue]
  T GetValue() { return _value; }
  //или так T GetValue(EntityBase parent) { ... например LazyLoad, но нужен parent для доступа к сервису}
  //или так T GetValue(EntityBase parent, PropertyInfo pi) { }
  

  [SetValue]
  SetValue(T value) { _value = value; }
  //или так SetValue(T value, EntityBase parent) { }
  //или так SetValue(T value, EntityBase parent, PropertyInfo pi) { ... например Undo, но нужен parent для доступа к сервису}


}


Соответственно, та версия функции, которую Builder обнаружил, она и будет вызвана. Причем, это происходит после стандартного поиска (полей, свойств), который реализован сейчас.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.