Пример #1
0
        /// <summary>
        /// Returns an evaluation context that contains bindings for 'standard library' functions, for instance ID and randomness functions,
        /// and bindings for the given properties (which have been parsed into properly typed values).
        /// </summary>
        public static EvaluationContext ContextFromProperties(IDictionary <string, string> properties, double id, Random random, IDictionary <string, object> globals)
        {
            var evaluationContext = new EvaluationContext(
                properties?.ToDictionary(
                    kv => kv.Key,
                    kv => PropertyExtensions.ParseProperty(kv.Value)),
                _globalsContext);

            var instanceFunctions = new InstanceFunctions(id, random, globals);

            NativeUtils.RegisterInstanceMethods(evaluationContext, instanceFunctions);

            return(evaluationContext);
        }
Пример #2
0
        /// <summary>
        /// Returns an evaluation context that contains bindings for 'standard library' functions, for instance ID and randomness functions,
        /// and bindings for the given properties (which have been parsed into properly typed values).
        /// </summary>
        public static EvaluationContext ContextFromProperties(
            IDictionary <string, string> properties,
            double id,
            double sequenceNumber,
            Random random,
            IDictionary <string, object> globals,
            ILogger logger,
            EvaluationContext parentContext = null)
        {
            var typedProperties = properties?.ToDictionary(
                kv => kv.Key,
                kv => PropertyExtensions.ParseProperty(kv.Value));

            var evaluationContext = new EvaluationContext(typedProperties, parentContext ?? _globalsContext);
            var instanceFunctions = new InstanceFunctions(id, sequenceNumber, random, typedProperties, globals, logger);

            NativeUtils.RegisterInstanceMethods(evaluationContext, instanceFunctions);

            return(evaluationContext);
        }