У меня около 20 таких регистраций в приложении:
builder.RegisterType(typeof(FilterParser<>)).As(typeof(IFilterParser<>)).InstancePerDependency();
Когда я пытаюсь построить свой контейнер, я получаю сообщение об ошибке:
Тип 'My.Namespace.FilterParser`1 [TEntity]' нельзя назначить службе 'My.Namespace.IFilterParser`1'. '
Обратите внимание, что разница заключается в [TEntity]
в реализации и его отсутствии в интерфейсе.
Мои сервисы реализуют интерфейсы:
public class FilterParser<TEntity> : IFilterParser<TEntity> where TEntity : new ()
public interface IFilterParser<TEntity> where TEntity : new ()
Я также реализовал эту регистрацию, используя ядро .net, и она отлично работает, но в Autofac просто отказывается работать.
Я даже пытался AsImplementedInterfaces
, и я получаю ту же ошибку
builder.RegisterType(typeof(FilterParser<>)).AsImplementedInterfaces()
.InstancePerDependency();