Не удается разрешить параметр 'X`1 [Y] - PullRequest
0 голосов
/ 24 февраля 2019

Я работаю над проектом, в котором я работаю с данными модели погоды.Модели разные, но логика вызовов функций внутри каждой модели одинакова.У каждой модели есть данные, сгенерированные об этом, а затем дана команда «выполнить».

У меня есть служба, которая представляет собой запрос на загрузку данных, которые ей необходимо выполнить, перед тем, как вызывать функциюRun называется.Эта run функция является общей для всех моделей, поэтому я разработал один интерфейс под названием IIndividualModelRunService.Но я столкнулся с проблемой.Эта проблема существует независимо от того, с какой из моделей вы работаете.

Раньше у меня был этот конструктор: -

public HRRRModelQueryService(IHRRRModelQueryRequestService hrrrModelQueryRequestService, IIndividualModelRunService modelRunService)
{
    _hrrrModelQueryRequestService = hrrrModelQueryRequestService;
    _modelRunService = modelRunService;
}

IIndividualModelRunService имеет три реализации, по одной для каждой модели, которые делаютразные специфические для модели вещи.Через некоторое время я заметил, что, кажется, только что вызывается один из трех, независимо от того, какой путь я прошел в проекте, например, через код Model1, код Model2 или код Model3.

Выше компилируются иработает, хотя и неправильно.

Я пытался обновить конструктор до этого, передавая тип в `IIndividualModelRunService, в надежде указать, что служба, которую я хочу вызвать, поможет: -

public HRRRModelQueryService(IHRRRModelQueryRequestService hrrrModelQueryRequestService, IIndividualModelRunService<HRRRModelRunService> modelRunService)
{
    _hrrrModelQueryRequestService = hrrrModelQueryRequestService;
    _modelRunService = modelRunService;
}

Но теперь я получаю это исключение при загрузке проекта, и я подозреваю, что это то, что я не регистрирую правильно: -

Ни один из конструкторов не найден с 'Autofac.Core.Activators.Reflection.DefaultConstructorFinder'on type' ModelRunDownloader.Domain.GFS.GFSModelQueryService 'может быть вызван с доступными службами и параметрами: Невозможно разрешить параметр' ModelRunDownloader.Domain.ModelService.IIndividualModelRunService'1 [ModelRunDownloader.Domain.GliserQueryServiceMicrosoft.GFS.GS.MRS.SystemRu.SF.ctor (ModelRunDownloader.Domain.GFS.IGFSModelQueryRequestService, ModelRunDownloader.Domain.который работает правильно, так как я протестировал это, а затем написал следующие команды: -

var assemblyList = assemblies.ToArray();

builder.RegisterAssemblyModules(assemblies);
builder.RegisterByAttributes(assemblies);        
builder.RegisterInstance(Assembly.GetExecutingAssembly()).As<_Assembly>();

return builder.Build();

Мне просто интересно, нужно ли мне здесь что-то вручную указывать из-за передачи этого типа в интерфейс,или я нахожусь на неправильном маршруте полностью?Совершенно новый для autofac, поэтому любые отзывы очень ценятся!

...