Exemplo n.º 1
0
        static MetacallEntryPoint()
        {
            log.Info("CSLoader Initialization - Runtime Version: "
                     + RuntimeEnvironment.GetSystemVersion()
                     + " - Language Version: "
                     + LanguageVersionFacts.ToDisplayString(LanguageVersionFacts.MapSpecifiedToEffectiveVersion(LanguageVersion.Latest)));

            #if NETCOREAPP1_0 || NETCOREAPP1_1 || NETCOREAPP1_2
            loader = new Providers.LoaderV1(log);
            #elif NETCOREAPP2_0 || NETCOREAPP2_1 || NETCOREAPP2_2 || NET5_0 // TODO: Implement or test support for 3
            loader = new Providers.LoaderV2(log);
            #else
            #   error "NET Core platform not supported"
            #endif
        }
Exemplo n.º 2
0
    /// <summary>
    /// Sets the C# language version to target when generating code.
    /// </summary>
    /// <param name="builder">The <see cref="RazorProjectEngineBuilder"/>.</param>
    /// <param name="csharpLanguageVersion">The C# <see cref="LanguageVersion"/>.</param>
    /// <returns>The <see cref="RazorProjectEngineBuilder"/>.</returns>
    public static RazorProjectEngineBuilder SetCSharpLanguageVersion(this RazorProjectEngineBuilder builder, LanguageVersion csharpLanguageVersion)
    {
        if (builder == null)
        {
            throw new ArgumentNullException(nameof(builder));
        }

        var existingFeature = builder.Features.OfType <ConfigureParserForCSharpVersionFeature>().FirstOrDefault();

        if (existingFeature != null)
        {
            builder.Features.Remove(existingFeature);
        }

        // This will convert any "latest", "default" or "LatestMajor" LanguageVersions into their numerical equivalent.
        var effectiveCSharpLanguageVersion = LanguageVersionFacts.MapSpecifiedToEffectiveVersion(csharpLanguageVersion);

        builder.Features.Add(new ConfigureParserForCSharpVersionFeature(effectiveCSharpLanguageVersion));

        return(builder);
    }