Как использовать Lamar 2 с предварительным просмотром ASP.NET Core 3? - PullRequest
0 голосов
/ 15 марта 2019

Я настроил Lamar с ASP.NET Core 3, но получил ошибку

System.InvalidCastException: 'Unable to cast object of type 'Microsoft.Extensions.DependencyInjection.ServiceCollection' to type 'Lamar.ServiceRegistry'.'

Мой конфиг в Program класс:

    public class Program
    {
        public static void Main(string[] args)
        {
            CreateHostBuilder(args).Build().Run();
        }

        public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    webBuilder.UseLamar();
                    webBuilder.UseStartup<Startup>();
                });
    }

и Startup класс:

public IConfiguration Configuration { get; }

        // This method gets called by the runtime. Use this method to add services to the container.
        //public void ConfigureServices(IServiceCollection services)
        //{
        //    services.Configure<CookiePolicyOptions>(options =>
        //    {
        //        // This lambda determines whether user consent for non-essential cookies is needed for a given request.
        //        options.CheckConsentNeeded = context => true;
        //        options.MinimumSameSitePolicy = SameSiteMode.None;
        //    });
        //    services.AddMvc()
        //        .AddNewtonsoftJson();
        //}

        public void ConfigureContainer(ServiceRegistry services)
        {
            services.Configure<CookiePolicyOptions>(options =>
            {
                // This lambda determines whether user consent for non-essential cookies is needed for a given request.
                options.CheckConsentNeeded = context => true;
                options.MinimumSameSitePolicy = SameSiteMode.None;
            });

            // Supports ASP.Net Core DI abstractions
            services.AddMvc().AddNewtonsoftJson();            
            services.AddLogging();

            // Also exposes Lamar specific registrations
            // and functionality
            services.Scan(s =>
            {
                s.TheCallingAssembly();
                s.WithDefaultConventions();
            });
        }

На основании документации я заменил ConfigureServices на ConfigureContainer, но получил ошибку, о которой упоминал выше.

enter image description here

Может кто-нибудь помочь мне использовать Lamar с предварительным просмотром ASP.NET Core 3?

1 Ответ

0 голосов
/ 26 марта 2019

Вы можете попробовать заменить HostBuilder на старый, например:

 public static IWebHostBuilder CreateHostBuilder(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .UseLamar()
            .UseUrls($"http://*:80")
            .UseStartup<Startup>();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...