Здравствуйте, Fortte, Вы писали:
F>Как правильно написать, чтоб подключить событие
Нужен точный тип делегата.
Если тип можно получить только в рантайме, то делегат можно создать через Delegate.CreateDelegate().
Вариант через рефлексию:
http://stackoverflow.com/questions/32473080/how-to-create-event-handler-for-com-object-when-using-dlr-dynamic-and-no-type
Добрый день.
Такое дело:
void Conn_ConnectionShutdown(object o, EventArgs e)
{
}
...
Assembly ass = Assembly.Load("Client");
Type ConnectionFactory = ass.GetType("Client.ConnectionFactory");
dynamic cf = Activator.CreateInstance(ConnectionFactory);
dynamic conn = cf.CreateConnection();
Type t = ass.GetType("Client.ShutdownEventArgs");//?
conn.ConnectionShutdown += new EventHandler<EventArgs> (Conn_ConnectionShutdown);//exception
//Но событие принимает аргумент типа: Client.ShutdownEventArgs, наследованный от EventArgs
//поэтому в момент исполнения возникает исключение: {"Не удается неявно преобразовать тип \"System.EventHandler<System.EventArgs>\" в \"System.EventHandler<Client.ShutdownEventArgs>\""}
Как правильно написать, чтоб подключить событие?
Спасибо.