Миграция из ASP.NET CORE с 2,2 по 3.1. Autofac.core.epectendencyResolutionExceptionC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Миграция из ASP.NET CORE с 2,2 по 3.1. Autofac.core.epectendencyResolutionException

Сообщение Anonymous »

Я делаю миграцию и столкнулся с исключением. Autofac может разрешить мою услугу из экземпляра поставщика услуг, но не может получить его в моем контроллере во время запроса. Интерфейс динамической инфраструктуры, и вы никогда не должны реализовать его самостоятельно. Вы пытаетесь прокси -прокси -серверу?

Код: Выделить всё

public class AutoregisterableModule : Autofac.Module
{
private readonly string _nameFilter;

/// 
/// Default ctor
/// 
/// 
Load will only search assemblies with names that contains filter
public AutoregisterableModule(string nameFilter)
{
_nameFilter = nameFilter;
}

/// 
/// Register's dependencies
/// 
protected override void Load(ContainerBuilder builder)
{
var assemblies = new List();
var dependencies = DependencyContext.Default.RuntimeLibraries.Where(x => x.Name.Contains(_nameFilter));

foreach (var library in dependencies)
{
var assembly = Assembly.Load(new AssemblyName(library.Name));
assemblies.Add(assembly);
}

builder.Register(c => new LogInterceptor()).InstancePerLifetimeScope();

var isProd = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") == "Production";

var containerBuilder = builder.RegisterAssemblyTypes(assemblies.ToArray())
.Where(TypesToRegisterFilter)
.PreserveExistingDefaults()
.AsImplementedInterfaces();

if (!isProd)
{
containerBuilder.EnableInterfaceInterceptors();
}

base.Load(builder);
}

private static bool TypesToRegisterFilter(Type type)
{
return !type.IsSubclassOf(typeof(SwaggerConfigureOptions)) && !typeof(BackgroundService).IsAssignableFrom(type);
}
}
Если я удалю эту строку, все работает хорошо (кроме моего loggerinterceptor : d)

Код: Выделить всё

containerBuilder.EnableInterfaceInterceptors();
< /code>
Моя служба выглядит как < /p>
[Intercept(typeof(LogInterceptor))]
public class CategoriesService : ICategoriesService
{
// some code here
}
Я попытался исправить его, понизив пакет Autofac.extensions.dependencyInction от 6.0.0 до 5.0.1, как было предложено там, но это не помогло.


Подробнее здесь: https://stackoverflow.com/questions/605 ... ionexcepti
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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