public SerializableAction_Single(Object targetObject, SerializableFieldSetter target, object parameter)
 {
     Assert.IsTrue((parameter == null && !target.FieldType.IsValueType) || target.FieldType.IsInstanceOfType(parameter));
     this.targetObject = targetObject;
     this.target       = new SerializableActionTarget(target);
     arguments         = new[] { new SerializableArgument(parameter, parameter.GetType(), "Field?") }; //@TODO: figure out name
 }
        public SerializableAction_Single(Object targetObject, SerializableMethod target, params object[] parameters)
        {
            Assert.AreEqual(target.ParameterTypes.Length, parameters.Length);
            for (var i = 0; i < target.ParameterTypes.Length; i++)
            {
                var parameterType = target.ParameterTypes[i];
                Assert.IsTrue((parameters[i] == null && !parameterType.SystemType.IsValueType) || parameterType.SystemType.IsInstanceOfType(parameters[i]));
            }

            this.targetObject = targetObject;
            this.target       = new SerializableActionTarget(target);
            arguments         = new SerializableArgument[parameters.Length];
            for (int i = 0; i < arguments.Length; i++)
            {
                arguments[i] = new SerializableArgument(parameters[i], parameters[i].GetType(), target.ParameterNames[i]);
            }
        }