C# Autofa c - System.MissingMethodException: невозможно создать экземпляр интерфейса - PullRequest
0 голосов
/ 19 марта 2020
---> Autofac.Core.DependencyResolutionException: An exception was thrown while invoking the constructor 'Void .ctor()' on type 'Application`1'.
---> System.MissingMethodException: Cannot create an instance of an interface.

Я пытаюсь зарегистрировать две реализации, используя Autofa c, но я получаю сообщение об ошибке выше. У меня есть общие c классы, которые я зарегистрировал

builder.RegisterGeneric(typeof(ClassA<>)).As(typeof(IClassA<>)).InstancePerLifetimeScope();
builder.RegisterGeneric(typeof(ClassB<,>)).As(typeof(IClassB<,>)).InstancePerLifetimeScope();

Внедрение ClassA на Controller выглядит следующим образом:

private readonly IClassA<IClassB<OtherA, OtherB>> _classA;
public ClassController(IClassA<IClassB<OtherA, OtherB>> classA){
    _classA = classA;
}

Кто-нибудь может мне помочь с этим или я что-то упустил?

1 Ответ

0 голосов
/ 20 марта 2020

Мой ответ на мой вопрос о том, что в Autofa c мы не должны инициализировать вручную класс, на который ссылаемся в интерфейсе, потому что это вызовет такую ​​ошибку. Дело в том, что он автоматически связан со свойствами и не требует повторной инициализации. Я удаляю проверку If Instance == null, тогда я создам новый ClassA для предоставления экземпляра.

...