Esempio n. 1
0
        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;
        }
Esempio n. 2
0
        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;
        }