Как перецепить все обработчики с одного объекта на другой
От: Аноним  
Дата: 19.08.14 11:13
Оценка:
Делаю мешханищм кэширования и так получается что мне надо подменить один объект на эквивалентный. но на старом могут быть обработчики событий. как перецепить их со старого объект ана новый
Re: Как перецепить все обработчики с одного объекта на другой
От: hardcase Пират http://nemerle.org
Дата: 19.08.14 11:17
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Делаю мешханищм кэширования и так получается что мне надо подменить один объект на эквивалентный. но на старом могут быть обработчики событий. как перецепить их со старого объект ана новый


Делегаты событий находятся в полях старого объекта их можно прочитать и записать на новое место (банальное копирование ссылок).
/* иЗвиНите зА неРовнЫй поЧерК */
Re: Как перецепить все обработчики с одного объекта на другой
От: 0x7be СССР  
Дата: 19.08.14 11:17
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Делаю мешханищм кэширования и так получается что мне надо подменить один объект на эквивалентный. но на старом могут быть обработчики событий. как перецепить их со старого объект ана новый

Адские пляски с рефлексией или же proxy-object
Re[2]: Как перецепить все обработчики с одного объекта на другой
От: Аноним  
Дата: 19.08.14 12:28
Оценка:
А>>Делаю мешханищм кэширования и так получается что мне надо подменить один объект на эквивалентный. но на старом могут быть обработчики событий. как перецепить их со старого объект ана новый

H>Делегаты событий находятся в полях старого объекта их можно прочитать и записать на новое место (банальное копирование ссылок).


Помогите кодом? Я еще слабоват в C#. Может покажете?
Re: Как перецепить все обработчики с одного объекта на другой
От: TK Лес кывт.рф
Дата: 20.08.14 07:11
Оценка: 1 (1) +5
Здравствуйте, Аноним, Вы писали:

А>Делаю мешханищм кэширования и так получается что мне надо подменить один объект на эквивалентный. но на старом могут быть обработчики событий. как перецепить их со старого объект ана новый


Подобные объекты просто не должны попадать в кеш. То, как вы делаете — это не правильно. В кеше должны быть только данные без какой либо логики.
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[3]: Как перецепить все обработчики с одного объекта на другой
От: hardcase Пират http://nemerle.org
Дата: 20.08.14 14:16
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Помогите кодом? Я еще слабоват в C#. Может покажете?


class EventSource
{
  public EventSource()
  {
    
  }

  public EventSource(EventSource oldSource)
  {
    this.A = oldSource.A;
    this.B = oldSource.B;
  }

  public event EventHandler A;
  public event EventHandler B;
}
/* иЗвиНите зА неРовнЫй поЧерК */
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.