Example #1
0
    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);
    }