Пример #1
0
        internal static CachedTemplate GetCachedTemplate(string templateName, CompileAction action)
        {
            if (_cache.Count == 0)
            {
                CleanupOldTemplates();
            }

            CachedTemplate cachedTemplate = null;

            if (_cache.ContainsKey(templateName))
            {
                cachedTemplate = _cache[templateName];

                DateTime lastUpdate = File.GetLastWriteTime(templateName);

                // Has the file changed since we last cached it?
                if (lastUpdate > cachedTemplate.CompileTime)
                {
                    // Update it
                    cachedTemplate.CodeBuilder = Parser.ParseMarkup(templateName);

                    cachedTemplate.CompiledAssembly = null;
                    cachedTemplate.CompilerResults  = null;
                }

                if (action == CompileAction.Compile && cachedTemplate.CompiledAssembly == null)
                {
                    cachedTemplate.CompilerResults = Compiler.Compile(cachedTemplate.CodeBuilder);

                    if (!cachedTemplate.CompilerResults.Errors.HasErrors)
                    {
                        cachedTemplate.CompiledAssembly = cachedTemplate.CompilerResults.CompiledAssembly;
                    }
                }

                cachedTemplate.CompileTime = DateTime.Now;
            }
            else
            {
                cachedTemplate             = new CachedTemplate();
                cachedTemplate.Name        = templateName;
                cachedTemplate.CodeBuilder = Parser.ParseMarkup(templateName);

                if (action == CompileAction.Compile)
                {
                    CompilerResults results = Compiler.Compile(cachedTemplate.CodeBuilder);
                    cachedTemplate.CompiledAssembly = results.CompiledAssembly;
                    cachedTemplate.CompilerResults  = results;
                }

                cachedTemplate.CompileTime = DateTime.Now;
                _cache[templateName]       = cachedTemplate;
            }

            return(cachedTemplate);
        }
        internal static CachedTemplate GetCachedTemplate(string templateName, CompileAction action)
        {
            if (_cache.Count == 0)
            {
                CleanupOldTemplates();
            }

            CachedTemplate cachedTemplate = null;

            if (_cache.ContainsKey(templateName))
            {
                cachedTemplate = _cache[templateName];

                DateTime lastUpdate = File.GetLastWriteTime(templateName);

                // Has the file changed since we last cached it?
                if (lastUpdate > cachedTemplate.CompileTime)
                {
                    // Update it
                    cachedTemplate.CodeBuilder = Parser.ParseMarkup(templateName);

                    cachedTemplate.CompiledAssembly = null;
                    cachedTemplate.CompilerResults = null;
                }

                if (action == CompileAction.Compile && cachedTemplate.CompiledAssembly == null)
                {
                    cachedTemplate.CompilerResults = Compiler.Compile(cachedTemplate.CodeBuilder);

                    if (!cachedTemplate.CompilerResults.Errors.HasErrors)
                    {
                        cachedTemplate.CompiledAssembly = cachedTemplate.CompilerResults.CompiledAssembly;
                    }
                }

                cachedTemplate.CompileTime = DateTime.Now;
            }
            else
            {
                cachedTemplate = new CachedTemplate();
                cachedTemplate.Name = templateName;
                cachedTemplate.CodeBuilder = Parser.ParseMarkup(templateName);

                if (action == CompileAction.Compile)
                {
                    CompilerResults results = Compiler.Compile(cachedTemplate.CodeBuilder);
                    cachedTemplate.CompiledAssembly = results.CompiledAssembly;
                    cachedTemplate.CompilerResults = results;
                }

                cachedTemplate.CompileTime = DateTime.Now;
                _cache[templateName] = cachedTemplate;
            }

            return cachedTemplate;
        }
Пример #3
0
        private void initControls()
        {
            // btnPlay = new ToolStripButton("Play");
            //btnPlay.ImageIndex = 1;
            // btnPlay.Image = AssetManager.ICON_PLAY;



            compileAction = new CompileAction();
            playAction    = new PlayGameAction();
        }