private static void SetParseOptions( RazorViewEngineOptions options, Extensions.DependencyModel.CompilationOptions compilationOptions) { var parseOptions = options.ParseOptions; parseOptions = parseOptions.WithPreprocessorSymbols( parseOptions.PreprocessorSymbolNames.Concat(compilationOptions.Defines ?? Enumerable.Empty <string>())); LanguageVersion languageVersion; if (!string.IsNullOrEmpty(compilationOptions.LanguageVersion) && Enum.TryParse(compilationOptions.LanguageVersion, ignoreCase: true, result: out languageVersion)) { parseOptions = parseOptions.WithLanguageVersion(languageVersion); } options.ParseOptions = parseOptions; }
private static void SetCompilationOptions(RazorViewEngineOptions options, Extensions.DependencyModel.CompilationOptions compilationOptions) { var roslynOptions = options.CompilationOptions; // Disable 1702 until roslyn turns this off by default roslynOptions = roslynOptions.WithSpecificDiagnosticOptions( new Dictionary <string, ReportDiagnostic> { { "CS1701", ReportDiagnostic.Suppress }, // Binding redirects { "CS1702", ReportDiagnostic.Suppress }, { "CS1705", ReportDiagnostic.Suppress } }); if (compilationOptions.AllowUnsafe.HasValue) { roslynOptions = roslynOptions.WithAllowUnsafe(compilationOptions.AllowUnsafe.Value); } if (compilationOptions.Optimize.HasValue) { var optimizationLevel = compilationOptions.Optimize.Value ? OptimizationLevel.Debug : OptimizationLevel.Release; roslynOptions = roslynOptions.WithOptimizationLevel(optimizationLevel); } if (compilationOptions.WarningsAsErrors.HasValue) { var reportDiagnostic = compilationOptions.WarningsAsErrors.Value ? ReportDiagnostic.Error : ReportDiagnostic.Default; roslynOptions = roslynOptions.WithGeneralDiagnosticOption(reportDiagnostic); } options.CompilationOptions = roslynOptions; }