Не удалось разрешить службу для типа «System.String» при попытке активировать «BuySell_20190423.Controllers.StockController» - PullRequest
0 голосов
/ 05 мая 2019

Я сделал много дополнений к этому бэкэнду.Теперь базовый HTTPPOST из контроллера значений, скопированного в контроллер запасов, дает мне эту ошибку в окне выбора:

InvalidOperationException: Unable to resolve service for type 
system.String' while attempting to activate 
BuySell_20190423.Controllers.StockController'.

Это мой пост контроллера запасов:

        [HttpPost]
    public void Post([FromBody]string value)
    {

    }

В почтальоне я получаювнутренняя ошибка 500 с использованием этого тела,

{"UserName":"johndoe"}

Вот некоторые из моих автозагрузок .cs

namespace BuySell_20190423
{
public class Startup
{


    public Startup(IConfiguration configuration)
    {
        Configuration = configuration;
    }

    public static IConfiguration Configuration { get; private set; }

    public void ConfigureServices(IServiceCollection services)
    {

    services.AddCors(o => o.AddPolicy("CorsPolicy", corsBuilder =>
    {
       corsBuilder.AllowAnyOrigin()
                  .AllowAnyMethod()
                  .AllowAnyHeader()
                  .AllowCredentials();
    }));

    services.AddDbContext<Helpers.DataContext>(x => x.UseInMemoryDatabase("TestDb"));
    services.AddDbContext<Models.StockContext>(opt => opt.UseInMemoryDatabase("item"));

    services.AddDbContext<AppDbContext>(x => x.UseInMemoryDatabase("AppDb"));
    // Auto Mapper Configurations
    var mappingConfig = new MapperConfiguration(mc =>
    {
      mc.AddProfile(new MappingProfile());
    });

    IMapper mapper = mappingConfig.CreateMapper();
    services.AddSingleton(mapper);
    //services.AddScoped<Post>(_ => new MyService("value here"));
        // configure strongly typed settings objects
        var appSettingsSection = Configuration.GetSection("AppSettings");
    services.Configure<AppSettings>(appSettingsSection);


    // configure DI for application services
    services.AddScoped<IUserService, UserService>();
        // configure DI for string services
        services.AddHttpClient();


        app.UseCors("CorsPolicy");
        app.UseHttpsRedirection();

        app.UseMvc();
    }
}

Вот конструктор контроллера акций:

        public StockController(String context, IHttpClientFactory httpClientFactory)
    {
        _httpClientFactory = httpClientFactory;
        _context = context;
    }

1 Ответ

1 голос
/ 05 мая 2019

Вы должны удалить параметр string context, система внедрения зависимостей не может знать, что это должно быть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...