/// <summary>
        /// 根据模板名称得到模板
        /// </summary>
        /// <param name="TemplateName"></param>
        /// <returns></returns>
        public CodeTemplate GetCodeTemplate(string TemplateName)
        {
            CodeTemplateCompiler compiler = new CodeTemplateCompiler(this.CodeTemplateInfo.DirectoryName + TemplateName);

            CodeTemplate template = null;

            compiler.CodeTemplateInfo.ToString();
            compiler.Compile();
            if (compiler.Errors.Count == 0)
            {
                template = compiler.CreateInstance();
            }
            else
            {
                System.Text.StringBuilder errorMessage = new System.Text.StringBuilder();
                for (int i = 0; i < compiler.Errors.Count; i++)
                {
                    errorMessage.Append(compiler.Errors[i].ToString()).Append("\r\n");
                }
                throw new ApplicationException(errorMessage.ToString());
            }

            //复制属性
            if (template != null)
            {
                CopyPropertiesTo(template);
            }

            return(template);
        }
Beispiel #2
0
		public CodeTemplate CompileTemplate(string templateName)
		{	
			CodeTemplateCompiler compiler = new CodeTemplateCompiler(templateName);
			compiler.Compile();	
		
			if (compiler.Errors.Count == 0)
			{
				return compiler.CreateInstance();
			}
			else
			{
				return null;
			}
		
		}
Beispiel #3
0
        public static CodeTemplate CompileTemplate(CodeTemplate parent, string template)
        {
            CodeTemplateCompiler compiler = new CodeTemplateCompiler(template);
            compiler.Compile();

            if (compiler.Errors.Count == 0)
            {
                return compiler.CreateInstance();
            }
            else
            {
                for (int i = 0; i < compiler.Errors.Count; i++)
                {
                    parent.Response.WriteLine(compiler.Errors[i].ToString());
                }
                return null;
            }
        }
Beispiel #4
0
        public static CodeTemplate CompileTemplate(CodeTemplate parent, string template)
        {
            CodeTemplateCompiler compiler = new CodeTemplateCompiler(template);

            compiler.Compile();

            if (compiler.Errors.Count == 0)
            {
                return(compiler.CreateInstance());
            }
            else
            {
                for (int i = 0; i < compiler.Errors.Count; i++)
                {
                    parent.Response.WriteLine(compiler.Errors[i].ToString());
                }
                return(null);
            }
        }
        private CodeTemplate GetTemplate(CslaObjectInfo objInfo, string templatePath)
        {
            CodeTemplateCompiler compiler;

            if (!templates.ContainsKey(templatePath))
            {
                if (!File.Exists(templatePath))
                {
                    throw new ApplicationException("The specified template could not be found: " + templatePath);
                }

                compiler = new CodeTemplateCompiler(templatePath);
                compiler.Compile();
                templates.Add(templatePath, compiler);

                StringBuilder sb = new StringBuilder();
                for (int i = 0; i < compiler.Errors.Count; i++)
                {
                    sb.Append(compiler.Errors[i].ToString());
                    sb.Append(Environment.NewLine);
                }
                if (compiler.Errors.Count > 0)
                {
                    throw new Exception(String.Format(
                                            "Template {0} failed to compile. Objects of the same type will be ignored.",
                                            templatePath) + Environment.NewLine + sb.ToString());
                }
            }
            else
            {
                compiler = (CodeTemplateCompiler)templates[templatePath];
            }
            if (compiler.Errors.Count > 0)
            {
                return(null);
            }

            CodeTemplate template = compiler.CreateInstance();

            template.SetProperty("Info", objInfo);
            return(template);
        }
Beispiel #6
0
    //获得模版实例
    private CodeTemplate GetCodeTemplate(string TemplateName)
    {
        //CodeTemplate template=null;
        CodeTemplateCompiler compiler = new CodeTemplateCompiler(this.CodeTemplateInfo.DirectoryName + TemplateName);

        compiler.CodeTemplateInfo.ToString();
        compiler.Compile();
        if (compiler.Errors.Count == 0)
        {
            return(compiler.CreateInstance());
        }
        else
        {
            System.Text.StringBuilder errorMessage = new System.Text.StringBuilder();
            for (int i = 0; i < compiler.Errors.Count; i++)
            {
                errorMessage.Append(compiler.Errors[i].ToString()).Append("\n");
            }
            throw new ApplicationException(errorMessage.ToString());
        }
    }
		private static CodeTemplateCompiler GetTemplate(string path)
		{
			if (_templateCache == null)
			{
				_templateCache = new Hashtable();
			}
			
			CodeTemplateCompiler compiler = null;
			if (_templateCache.ContainsKey(path))
			{
				compiler = _templateCache[path] as CodeTemplateCompiler;
			}

			if (compiler == null)
			{
				compiler = new CodeTemplateCompiler(path);
				compiler.Compile();
				if (compiler.Errors.Count == 0)
				{
					_templateCache.Add(path, compiler);
				}
			}
			return compiler;
		}
            public static CodeTemplate GetCompiledTemplate(string templatePath)
            {

                CodeTemplateCompiler compiler = new CodeTemplateCompiler(templatePath);
	            compiler.Compile();

                if (compiler.Errors.Count > 0)
                {
                    string errString = "Error Compiling Template\r\n";
                    errString += "- " + templatePath + "\r\n";

                    foreach (System.CodeDom.Compiler.CompilerError err in compiler.Errors)
                    {   
                        errString += err.ErrorText + "\r\n";
                    }
                    throw new ApplicationException(errString);
                }

                return compiler.CreateInstance();

            }
Beispiel #9
0
        public static CodeTemplate GetCodeTemplate(string TemplateFullName)
        {
            //CodeTemplate template=null;
            CodeTemplateCompiler compiler = new CodeTemplateCompiler(TemplateFullName);
            compiler.CodeTemplateInfo.ToString();
            compiler.Compile();
            if (compiler.Errors.Count == 0)
            {
            return compiler.CreateInstance();
            }
            else
            {
            System.Text.StringBuilder errorMessage = new System.Text.StringBuilder();
            for (int i = 0; i < compiler.Errors.Count; i++)
            {
            errorMessage.Append(compiler.Errors[i].ToString()).Append("\n");
            }
            throw new ApplicationException(errorMessage.ToString());
            }

            return null;
        }