public static void Deserialize(byte[] data, out Event e, out object[] values) { BinaryFormatter formatter = new BinaryFormatter (); MemoryStream memoryStream = new MemoryStream (data, true); int id = (int)formatter.Deserialize (memoryStream); e = Event.FindEvent (id); if (e == null) { values = null; return; } values = new object[e.ParamInfo.Length]; for (int i = 0; i < values.Length; i++) { values [i] = formatter.Deserialize (memoryStream); } }
static void Register(Event e) { Event outEvent = null; if (sEventDict.TryGetValue (e.Id, out outEvent)) { if (!e.Equals (outEvent)) { Log.E ("Event id already exist: {0}!", e.Id); } return; } sEventDict.Add (e.Id, e); }