Проблема с открытым универсальным интерфейсом при попытке получить экземпляр с помощью IServiceProvider с корнем композиC#

Место общения программистов C#
Ответить
Anonymous
 Проблема с открытым универсальным интерфейсом при попытке получить экземпляр с помощью IServiceProvider с корнем компози

Сообщение Anonymous »

Используя контейнер DI .NET Core, зарегистрировал открытый универсальный интерфейс с контейнером DI, но при попытке разрешить его двумя разными способами, чтобы получить соответствующий экземпляр, продолжает получать исключение компиляции. Как это решить?
public void ConfigureServices(IServiceCollection services)
{
services.AddScoped(typeof(GenericRepository));

services.AddScoped(typeof(IRepository),typeof(CachingRepository));

services.AddScoped(typeof(IRepository), provider =>
{
var baseRepository = provider.GetRequiredService();

var configuration = provider.GetRequiredService();
var useCache = configuration.GetValue("UseCache");

if (useCache)
{
// Getting error: Type or namespace T could not be found
var cacheRepo = provider.GetRequiredService();
}
else
{
// Getting error: // Type or namespace T could not be found
var cacheRepo = provider.GetRequiredService(typeof(GenericRepository).MakeGenericType(typeof(T)));
}
});
}


Подробнее здесь: https://stackoverflow.com/questions/792 ... rviceprovi
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»