private Action <MessageContext> InternalMakeMessageReceiver( object target, MethodInfo method) { ParameterInfo[] parametersInfo = method.GetParameters(); Action <MessageContext> receiver = delegate(MessageContext mc) { object[] parameters = new object[parametersInfo.Length]; for (int i = 0; i < parametersInfo.Length; ++i) { ParameterInfo parameterInfo = parametersInfo[i]; try { parameters[i] = mc.GetParameter <object>(parameterInfo.Name); parameters[i] = MessageContext.DynamicCast(parameters[i], parameterInfo.ParameterType); } catch { parameters[i] = parameterInfo.DefaultValue; } } foreach (ParameterInfo parameter in parametersInfo) { string name = parameter.Name; } method.Invoke(target, parameters); }; return(receiver); }