/// <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); }
public CodeTemplate CompileTemplate(string templateName) { CodeTemplateCompiler compiler = new CodeTemplateCompiler(templateName); compiler.Compile(); if (compiler.Errors.Count == 0) { return compiler.CreateInstance(); } else { return null; } }
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; } }
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); }
//获得模版实例 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(); }
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; }