示例#1
0
        /// <summary>Creates an ObjectVariable and adds it to the object scope.</summary>
        public ObjectVariable AddObjectVariable(IVariableInstance variableInstance)
        {
            // Add the variable to the object scope.
            ObjectScope.AddNativeVariable(variableInstance);

            // Create the ObjectVariable.
            var result = new ObjectVariable(WorkingInstance, variableInstance);

            // Add it to the list.
            _objectVariables.Add(result);
            return(result);
        }
        protected virtual void Setup()
        {
            _instanceReady = true;

            // Variables
            _variables = new IVariableInstance[_provider.Variables.Length];
            for (int i = 0; i < _variables.Length; i++)
            {
                _variables[i] = _provider.Variables[i].GetInstance(this, _typeLinker);
                ObjectScope.AddNativeVariable(_variables[i]);
            }

            // Static variables
            foreach (var variable in _provider.StaticVariables)
            {
                variable.AddInstance(this, _typeLinker);
            }

            // Functions
            foreach (var method in _provider.Methods)
            {
                method.AddInstance(this, _typeLinker);
            }
        }