3
与此相似的问题:C#2.0的动态事件订阅与已知的事件签名
我希望能够将事件处理程序连线到事件发射出一个动态创建的对象。我这样做是为了验证我的JavaScript和其他非.NET代码能够连接到对象的事件。
的对象我的事件签名是:
委托无效MediaItemFellbackDelegate(INT ID,字符串名称,路径字符串);
这里是我的 'DynamicHost' 代码:
public delegate void MediaItemFellbackDelegate(int id, string name, string path);
public void MediaItemFellback(int id, string name, string path)
{
}
private void HandleEvent(string eventName, Delegate handler)
{
try
{
BindingFlags bindingFlags = BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic;
EventInfo mediaItemFellback = m_PlayerType.GetEvent(eventName, bindingFlags);
mediaItemFellback.AddEventHandler(m_Player, handler);
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
HandleEvent("MediaItemFellback", new MediaItemFellbackDelegate(this.MediaItemFellback));
但我结束了异常:
类型的对象 'DynamicHost.Main + MediaItemFellbackDelegate' 不能转换为类型 'Player.MediaItemFellbackDelegate'。
在AddEventHandler()调用中。
当然,它们是不同的类型,但签名是相同的。
这里怎么回事?
你摇滚!我能找到的所有例子都降临到IL一代,所以谢谢你的回答。你摇滚! – JBRWilkinson 2009-09-29 12:09:12