簡體   English   中英

IServiceCollection 服務的 Asp.Net Core 5.0 問題

[英]Asp.Net Core 5.0 Issue with IServiceCollection services

using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.OpenApi.Models;
using Travel.Application;
using Travel.WebApi.Filters;
using Travel.Data;
using Travel.Shared;

namespace Travel.WebApi
{
    public class Startup
    {
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
        }

        public IConfiguration Configuration { get; }
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddApplication();
            services.AddInfrastructureData();
            services.AddInfrastructureShared(Configuration);

            services.AddHttpContextAccessor();

            services.AddControllers();

            services.AddControllersWithViews(options =>
                options.Filters.Add(new ApiExceptionFilter()));
            services.Configure<ApiBehaviorOptions>(options =>
                options.SuppressModelStateInvalidFilter = true
            );

            services.AddSwaggerGen(c =>
            {
                c.SwaggerDoc("v1", new OpenApiInfo { Title = "Travel.WebApi", Version = "v1" });
            });
        }
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
                app.UseSwagger();
                app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "Travel.WebApi v1"));
            }

            app.UseHttpsRedirection();
            app.UseRouting();
            app.UseAuthorization();
            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllers();
            });
        }
    }
}

所以這是我的“啟動”文件,我有一條錯誤消息:

嚴重性代碼說明項目文件行抑制 State 錯誤 CS1061“IServiceCollection”不包含“AddInfrastructureData”的定義,並且找不到接受“IServiceCollection”類型的第一個參數的可訪問擴展方法“AddInfrastructureData”(您是否缺少 using 指令或程序集參考?)Travel.WebApi C:\Users\Alexandru\Desktop\WebDev\AdminApp\src\presentation\Travel.WebApi\Startup.cs 26 Active

我只是..卡住了。 為什么找不到“AddInfrastructureData”?

嘗試在AddInfrastructureData所在的位置添加一個 using 命名空間。

Travel.Data替換為代碼中的適當命名空間:

namespace Travel.Data;

public static class ServiceCollectionExtensions
{
  public static IServiceCollection AddInfrastructureData(this IServiceCollection servicesCollection)
  {
    //...
    return servicesCollection;
  }
}

// 啟動.cs

using Travel.Data;

如果擴展方法位於不同的項目或 package 通過右鍵單擊項目的Dependencies項子菜單和 select “添加項目引用...”或“管理 NuGet 包...”來添加它。

在此處輸入圖像描述

如果沒有幫助,請提供更多信息。 AddInfrastructureData 是您自己的方法還是外部方法等?

如果你錯過了任何包裹,你可以查看你的指南

如果您錯過了復制以下代碼,您可以查看您的指南:

 public static class DependencyInjection
    {
        public static IServiceCollection AddInfrastructureData(this IServiceCollection services)
        {   
            return services;
        }
        public static IServiceCollection AddInfrastructureShared(this IServiceCollection services,IConfiguration configuration)
        {
            return services;
        }
    }

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM