Re: Приведение к типу Type
От: Sinix  
Дата: 23.08.16 14:13
Оценка: 14 (1)
Здравствуйте, Fortte, Вы писали:

F>Как правильно написать, чтоб подключить событие

Нужен точный тип делегата.

Если тип можно получить только в рантайме, то делегат можно создать через Delegate.CreateDelegate().
Вариант через рефлексию:
http://stackoverflow.com/questions/32473080/how-to-create-event-handler-for-com-object-when-using-dlr-dynamic-and-no-type
Приведение к типу Type
От: Fortte  
Дата: 23.08.16 13:51
Оценка:
Добрый день.
Такое дело:
    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>\""}


Как правильно написать, чтоб подключить событие?

Спасибо.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.