Inheritance: AbstractBindingComponent, ICloneable
		/// <summary>
		/// Creates a new object that is a copy of the current instance.
		/// </summary>
		/// <returns>
		/// A new object that is a copy of this instance.
		/// </returns>
		public object Clone()
		{
			ActionArgument actionArg = new ActionArgument();
			actionArg.name = name;
			actionArg.value = value;
			actionArg.expression = expression;
			return actionArg;
		}
		/// <summary>
		/// Resolves the action argument.
		/// </summary>
		/// <param name="actionArg">The action arg.</param>
		/// <returns></returns>
		private object ResolveActionArgument(ActionArgument actionArg)
		{
			object value = actionArg.Value;

			if (value == null || value is string)
			{
				string expression = value as string;

				if (expression == null)
					expression = actionArg.Expression;

				value = evaluator.Evaluate(expression, this);
			}

			return value;
		}