public virtual void SetTargetMethod(object aMethodObject, string aMethodName, params TValueStoreMethodArguments[] aMethodArgs)
        {
            // Check that the args are okay.
            foreach (TValueStoreMethodArguments argType in aMethodArgs)
            {
                if (argType == TValueStoreMethodArguments.EValueStoreMethodArgumentCalculateAtRuntime)
                {
                    if (aMethodArgs.Length != 1)
                    {
                        throw new ArgumentException("Method arguments must contain only a single entry when using \'calculate at runtime\' approach");
                    }
                }
            }

            iValueStore = new ValueStore();
            iValueStore.SetTargetMethod(aMethodObject, aMethodName, aMethodArgs);
        }