/// <summary> /// Helper method to get all references for the given compilation. /// </summary> /// <param name="context"></param> /// <returns></returns> protected IEnumerable <CompilerReference> GetAllReferences(TypeContext context) { #pragma warning disable 0618 // Backwards Compat. var references = ReferenceResolver.GetReferences( context, IncludeAssemblies() .Select(CompilerReference.From) .Concat(IncludeReferences())) #pragma warning restore 0618 // Backwards Compat. .ToList(); context.AddReferences(references); return(references); }
/// <summary> /// Helper method to get all references for the given compilation. /// </summary> /// <param name="context"></param> /// <returns></returns> protected IEnumerable <CompilerReference> GetAllReferences(TypeContext context) { var references = ReferenceResolver.GetReferences( context, IncludeAssemblies() .Select(RazorEngine.Compilation.ReferenceResolver.CompilerReference.From) .Concat(IncludeReferences())); foreach (var reference in references) { this.references.Add(reference); yield return(reference); } }
/// <summary> /// Helper method to get all references for the given compilation. /// </summary> /// <param name="context"></param> /// <returns></returns> protected IEnumerable <CompilerReference> GetAllReferences(TypeContext context) { #pragma warning disable 0618 // Backwards Compat. var references = ReferenceResolver.GetReferences( context, IncludeAssemblies() .Select(RazorEngine.Compilation.ReferenceResolver.CompilerReference.From) .Concat(IncludeReferences())); #pragma warning restore 0618 // Backwards Compat. foreach (var reference in references) { this.references.Add(reference); yield return(reference); } }
private Tuple <CompilerResults, string> Compile(TypeContext context) { if (_disposed) { throw new ObjectDisposedException(GetType().Name); } var compileUnit = GetCodeCompileUnit(context.ClassName, context.TemplateContent, context.Namespaces, context.TemplateType, context.ModelType); var @params = new CompilerParameters { GenerateInMemory = true, GenerateExecutable = false, IncludeDebugInformation = Debug, TreatWarningsAsErrors = false, CompilerOptions = "/target:library /optimize /define:RAZORENGINE" }; var assemblies = ReferenceResolver.GetReferences(context, IncludeAssemblies()); assemblies = assemblies .Where(a => !string.IsNullOrWhiteSpace(a)) .Distinct(StringComparer.InvariantCultureIgnoreCase); @params.ReferencedAssemblies.AddRange(assemblies.ToArray()); string sourceCode = null; if (Debug) { var builder = new StringBuilder(); using (var writer = new StringWriter(builder, CultureInfo.InvariantCulture)) { _codeDomProvider.GenerateCodeFromCompileUnit(compileUnit, writer, new CodeGeneratorOptions()); sourceCode = builder.ToString(); } } return(Tuple.Create(_codeDomProvider.CompileAssemblyFromDom(@params, compileUnit), sourceCode)); }