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 }
/// <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); }