Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Запуск событий

273
18 апреля 2006 года
3A3-968M
1.2K / / 22.12.2005
Хочу реализовать запуск события по имени, подобно тому, как это реализовано в Java, например: this.fireEvent("onmousemove")
На C# получаю метаданные о событии
public virtual void FireEvent(string name, params object[] args)
{
System.Reflection.EventInfo e=this.GetType().GetEvent(name, System.Reflection.BindingFlags.IgnoreCase);
}
А вот дальше что делать?
273
20 апреля 2006 года
3A3-968M
1.2K / / 22.12.2005
Разобрался вроде:
public virtual void FireEvent(string eventName, params object[] eventArgs)
{
System.Reflection.FieldInfo field = this.GetType().GetField(eventName, System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.IgnoreCase);
Delegate targetDelegate = (Delegate)field.GetValue(this);
targetDelegate.DynamicInvoke(eventArgs);
}
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог