как получить объект события

как получить объект события
Atom
10/13/2011
avkar


Добрый день!

При реализации событийной модели в своей стратегии столкнулся с невозможностью получить объект, инициализировавшее событие, в его обработчике. На моем примере, это выглядит так у меня по определенным условиям генерятся заявки, и мне нужно при их исполнении произвести некоторые расчеты c объемом и ценой, для чего в моем обработчике MatchedOrder нужно получить ссылку на исполненную заявку. Событие вызывается так this .When(order.Matched()) .Do(MatchedOrder);

Как можно в обработчике MatchedOrder получить ссылку на исполненный ордер? Вроде бы есть возможность передать в обработчик объект, если реализовать его как

public StrategyRule Do( Action action )

, но метод позволяющий передать туда объект защищен

protected void Activate( Object value )

Хорошо было бы для стандартных событий реализовать Do, например, для Matched() реализовать свой Do,с передачей в него ссылки на исполнившуюся заявку.


Tags:


Thanks:


Mikhail Sukhov

Avatar
Date: 10/14/2011
Reply


this
   .When(order.Matched())
   .Do<Order>(MatchedOrder);
Thanks: avkar

avkar

Avatar
Date: 10/14/2011
Reply


Спасибо большое. И как пожелание, неплохо было бы добавить в документацию такую информацию, а то не ясно какие формы обработчиков предусмотрены для стандартных событий.

Thanks:

Mikhail Sukhov

Avatar
Date: 10/14/2011
Reply


avkar: Спасибо большое. И как пожелание, неплохо было бы добавить в документацию такую информацию, а то не ясно какие формы обработчиков предусмотрены для стандартных событий.

Вы можете сами внести изменения в документацию.

Thanks:

avkar

Avatar
Date: 10/14/2011
Reply


А как? Для этого нужен доступ к файлам документации и как минимум к сигнатурам реализованных обработчиков. А так, я двумя руками ЗА.

Thanks:

Mikhail Sukhov

Avatar
Date: 10/15/2011
Reply


avkar: А как? Для этого нужен доступ к файлам документации и как минимум к сигнатурам реализованных обработчиков. А так, я двумя руками ЗА.

  1. Сделать логин на CodePlex и сказать его.
  2. Скачать через TFS исходники, где в папке Documents находится документация.
  3. Установить Sandcastle + SHFB.
  4. Через SHFB отредактировать файлы доки.
  5. Залить ее на CodePlex.

Сегодня переправил правила, и теперь появлась generic версия StrategyRule (зальем на днях на CodePlex). Обработчик в методе Do у него сможет принимать только тот тип, что указан в StrategyRule. Поэтому неправильная сигнатура будет определяться уже на этапе компиляции. Собственно, так можно будет и увидеть, что может принимать Do.

Будет великолепно если опишите этот момент. Будет еще великолепнее, если опишите подробнее, как создавать свои правила и как их использовать. Жаловались на скудное описание. В чем-то согласен.

Thanks:

Mikhail Sukhov

Avatar
Date: 10/17/2011
Reply


Mikhail Sukhov: Сегодня переправил правила, и теперь появлась generic версия StrategyRule (зальем на днях на CodePlex).

Залили.

Thanks:

avkar

Avatar
Date: 10/20/2011
Reply


Я зарегистрировался на codeplex под ником avkar. Добавьте, пожалуйста, меня в группу.

Thanks:

Mikhail Sukhov

Avatar
Date: 10/20/2011
Reply


avkar: Я зарегистрировался на codeplex под ником avkar. Добавьте, пожалуйста, меня в группу.

Мы регистрируем только помощников.

Thanks:


Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy