我在这里有一个事件,它使用包含动态对象的参数触发。它是直接在事件调用本身中创建的匿名对象,例如
if(MyEvent != null) MyEvent(this, new SensoricDataEventArgs { Data = new { Action = "Start", Team = "Blau" } });
其中SensoricDataEventArgs的签名是这样的:
class SensoricDataEventArgs : EventArgs {
public dynamic Data { get; set; }
}
当我尝试在处理程序中访问该数据时(在另一个程序集中,如果相关的话),我得到的只是对象没有Action定义的异常,即使我将 Data 属性重新转换为动态的。甚至动态对象的 DebuggerVisualizer也显示对象上有一个属性Action。
但是,我得到了提到的异常。
这是我在事件处理程序中尝试执行的操作的图像,以及来自调试器的信息。在图像中,调试器已在断点处停止。下一步将引发异常。
知道是什么导致了这个异常吗?我究竟做错了什么?