Я за исключением следующегоСобытие не найдено по типу
Необработанное исключение типа «System.ArgumentException» произошло в WindowsBase.dll
Дополнительная информация: «Событие» событие не найдено по типу «ConsoleApplication .ITest.
в этом Repro:
using System.Windows; // add reference to WindowsBase
interface IBase
{
event EventHandler Event;
}
interface ITest : IBase { }
class Test : ITest
{
public event EventHandler Event;
}
class Program
{
static void Main(string[] args)
{
var test = new Test();
WeakEventManager<IBase, EventArgs>.AddHandler(test, "Event", (s, e) => { }); // works
WeakEventManager<ITest, EventArgs>.AddHandler(test, "Event", (s, e) => { }); // exception
}
}
Почему унаследовали через интерфейсы события не могут быть найдены? Исключение выбрасывается с this method.
кажется WeakEventManager выглядит только для событий ** специально ** в указанном типе - когда я объявил еще одно событие в интерфейсе ITEST и попытался добавить его - он работал нормально. Кажется, вам нужно предоставить самый верхний (в иерархии наследования), чтобы найти событие. Но ** почему ** это так - я здесь не хватает. –
@ jakub-jankowski, кажется, что это ошибка, потому что 'typeof (ITest) .GetEvent (« Event »)' works – Sinatr