public static Message FromObject(object msg) { var m = new Message(); m.MethodName = msg.GetType().Name; m.Parameters = msg.GetType().GetProperties().Select(x => new KeyValuePair<string, object>(x.Name, x.GetValue(msg, null))) .Union(msg.GetType().GetFields().Select(x => new KeyValuePair<string, object>(x.Name, x.GetValue(msg)))); return m; }
public void Add(Message msg) { msgs.Add(msg); }
public static Message FromAction(Action<dynamic> a) { var msg = new Message(); a(msg); return msg; }
public override bool TryInvokeMember(InvokeMemberBinder binder, object[] args, out object result) { var msg = new Message(binder, args); this.MethodName = msg.MethodName; this.Parameters = msg.Parameters; result = msg; return true; }