Ошибка Unable to resolve service for type and CodeGeneration появляется при запуске выбранного генератора кода

843 / 486 / 185Регистрация: 08. 2014Сообщений: 1,615

22. 2021, 15:08

4

Volodya_
В 19-й Студии есть стабильный баг с версиями/доступностью пакетов из-за кривого кэширования в каталоге ‘. vs’. Лечится просто – закрыть Студию, из sln-каталога удалить ‘. vs’-подкаталог, а из всех проектов удалить подкаталоги ‘bin’ и ‘obj’. Запустить Студию, пересобрать солюшен

774 / 498 / 125Регистрация: 09. 2011Сообщений: 1,619Записей в блоге: 2

22. 2021, 15:34

5

Сообщение от kotelok
В 19-й Студии есть стабильный баг с версиями/доступностью пакетов из-за кривого кэширования в каталоге ‘. vs’. Лечится просто – закрыть Студию, из sln-каталога удалить ‘. vs’-подкаталог, а из всех проектов удалить подкаталоги ‘bin’ и ‘obj’. Запустить Студию, пересобрать солюшен. Отчасти правильно. vs не нужно удалять. Там нет ничего связанного с пакетами и т. А вот кое-какие полезные настройки можно удалить. Лучший совет – bin и obj папки удалять. Но по своему опыту могу точно сказать – что удалять их приходится только если я, например, в текущем каталоге ветку переключил в которой не было изменений, в том числе зависимостями. Тогда надо обязательно сборку перебильживать в чистую. В остальных случаях это бесполезно

843 / 486 / 185Регистрация: 08. 2014Сообщений: 1,615

22. 2021, 15:41

6

Сообщение от HF
vs не нужно удалять

Стабильно помогает именно удаление ‘. vs’, когда Студия упорно не видит новую версию пакета из нугета или не определяет новые пути подпроектов после реорганизации структуры проекта (перенос какого-нибудь из проектов в подкаталог). Не только на моей машине. Апдейты все установлены

774 / 498 / 125Регистрация: 09. 2011Сообщений: 1,619Записей в блоге: 2

23. 2021, 08:29

8

Сообщение от Volodya_
Пытаюсь создать снова новый проект и в нем сгенерировать, но он уже и в новом проекте такую же ошибку выдает

Читайте также:  Что означает код ошибки n608 кнопки счетчика комплекса kpd 3P?

Это проблема индивидуально для вашего проекта, который мы даже не видели. А я например вообще без понятия как работает этот генератор. Нужен ли он в референцах, какой и как и когда генерируются контроллеры. Указанная вами ошибка обычно связана с зависимостями, которые не совместимы или для проекта вообще или для других пакетов. Может быть тот же ЕФ не совместим с этой версией. Если например убрать эти ссылки, то наверняка будут ошибки типа “Пакет ХХХ ожидал и не нашёл зависимость НННН версии ЮЮЮЮ”
Для начала прочитай полный лог билда. Если не достаточно там информации – увеличьте уровень логирования. В итоге найдёте информацию о конфликтах и попытках исправить или рекомендациях

InvalidOperationException: невозможно разрешить службу для типа «WebApplication1. Data. BloggerRepository» при попытке активировать «WebApplication1. Controllers. BlogController».

Репозиторий (IBloggerRepository. cs & BloggerRepository. cs)Startup. cs (соответствующий код)// Add framework services. // Add application services. Я не уверен, что я делаю неправильно. Любые идеи?

Исключение говорит, что не может разрешить службу, WebApplication1. Data. BloggerRepositoryпотому что конструктор на вашем контроллере запрашивает конкретный класс вместо интерфейса. Так что просто измени это:
// ^
// Add this!

Я столкнулся с этой проблемой, потому что в настройке внедрения зависимостей мне не хватало зависимости репозитория, которая является зависимостью контроллера: I was missing

В моем случае я пытался сделать внедрение зависимости для объекта, который требовал аргументов конструктора. В этом случае во время запуска я просто предоставил аргументы из файла конфигурации, например:

У меня была другая проблема, и да, параметризованный конструктор для моего контроллера уже был добавлен с правильным интерфейсом. То, что я сделал, было чем-то простым. Я просто захожу в свой startup. csфайл, где я вижу вызов метода регистрации. В моем случае этот Registerметод был в отдельном классе Injector. Поэтому я должен был добавить свои недавно представленные интерфейсы. Если вы видите, параметр этой функции this IServiceCollectionНадеюсь это поможет.

Читайте также:  Дальнобой-mangruzovik.ru. Инструкции для ремонта спецтехники

Только если у кого-то такая же ситуация, как у меня, я делаю учебник EntityFramework с существующей базой данных, но когда новый контекст базы данных создается в папках моделей, нам нужно обновлять контекст при запуске, а не только в службах. AddDbContext, но AddIdentity тоже, если у вас есть аутентификация пользователей

Вам нужно добавить новый сервис для DBcontextпри запуске

Вы забыли добавить «services. AddScoped» в ConfigureServicesметоде запуска.

Я получил эту проблему из-за довольно глупой ошибки. Я забыл перехватить процедуру настройки службы для автоматического обнаружения контроллеров в приложении ASP. NET Core. Добавление этого метода решило это:// Add framework services. // <—- Super important

Мне пришлось добавить эту строку в ConfigureServices, чтобы работать.

Я получал ниже исключения to resolve service
attempting to activate
at lambda_method Потому что я хотел зарегистрировать Factory для создания экземпляров класса DbContext Derived IBlogContextFactory и использовать метод Create для создания экземпляра экземпляра Blog Context, чтобы я мог использовать приведенный ниже шаблон вместе с инъекцией зависимостей, а также использовать mocking для модульного тестирования. шаблон, который я хотел использовать,

Но вместо нового BloggingContext () я хочу внедрить фабрику через конструктор, как показано ниже в классе BlogController

//validation goes here

// Instantiage context only if needed and dispose immediately

//Do further processing without need of context. вот мой регистрационный код сервиса

и ниже мои модели и фабричные классы

// This is fine with. net and unity, this is treated as factory function, but creating problem in. netcore service provider

—– Исправить это в. net Core MVC проекте – я сделал ниже изменения по регистрации зависимостей

Читайте также:  Коды ошибок эбу на ваз 21124

Короче говоря, разработчик ядра. net отвечает за внедрение фабричной функции, о которой в случае Unity и. Net Framework заботились.

Это связано с тем, что вы не зарегистрировали компонент доступа к данным с помощью интерфейса, написанного для него. Попробуйте использовать следующим образом

Если вы используете AutoFac и получаете эту ошибку, вы должны добавить оператор «As», чтобы указать сервис, который реализует конкретная реализация. То есть. Вы должны написать:

Разрешение службы выполняется еще до того, как будет достигнут код класса, поэтому нам нужно проверить наши внедрения зависимостей. В моем случае я добавил

У меня была та же проблема, и я обнаружил, что мой код использовал инъекцию до ее инициализации. // Will cause a problem if you use your IBloggerRepository in there since it’s defined after this line. Я знаю, что это не имеет никакого отношения к вопросу, но, поскольку меня отправили на эту страницу, я понял, что это может быть полезно для кого-то еще.

И это сработало для меня.

Я получил эту ошибку, потому что я объявил переменную (выше метода ConfigureServices) типа, который был моим контекстом. Я имел:Не уверен, что я думал. Я знаю, что это допустимо, если вы передаете параметр в метод Configure.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *