public override void Prepare()
{
base.Prepare();
// try to convert the arguments for the chosen method
Type[] requiredTypes = ReflectionUtils.GetParameterTypes(GetPreparedMethod());
object[] arguments = PreparedArguments;
object[] convertedArguments = new object[arguments.Length];
for (int i = 0; i < arguments.Length; ++i)
{
convertedArguments[i] = TypeConversionUtils.ConvertValueIfNecessary(requiredTypes[i], arguments[i], null);
}
PreparedArguments = convertedArguments;
}
public void Invoke () { ArgumentConvertingMethodInvoker vkr = new ArgumentConvertingMethodInvoker (); vkr.TargetObject = new Voker (); vkr.TargetMethod = "Hi"; vkr.Arguments = new object [] {"Rick, Mark, Griffin, Si, Choy, Aleks"}; vkr.Prepare (); string actual = vkr.Invoke () as string; Assert.IsNotNull (actual); Assert.AreEqual ("Hi Rick, Mark, Griffin, Si, Choy, Aleks", actual); }