Как ссылаться на ViewModels (в отдельном веб-проекте) в интерфейсе другого проекта? - PullRequest
0 голосов
/ 25 октября 2019

Я создаю интерфейс для контроллера, который обрабатывает различные методы отправки форм, которые все используют определенные ViewModel в качестве параметров. Моя цель - использовать Dependency Injection (DI) для передачи интерфейса в другой контроллер, который должен выполнять один из методов интерфейса.

Interface with broken reference to ViewModel param

Интерфейс и контроллер работали нормально, когда Интерфейс был помещен в веб-проект, однако, как только я переместил Интерфейс в проект Интерфейсы, ссылкичтобы сломались ViewModels и я не могу понять, как их решить.

Я смог использовать это для прямого вызова метода, не используя маршрут DI, однако остальная часть нашего сайта использует DI, и я не хотел нарушать шаблон:

var controller = DependencyResolver.Current.GetService<FormController>();
controller.SendForm(model);

Я пробовал:

  • Добавление веб-проекта в качестве ссылки на сборку для проекта интерфейсов, однако это приведет к созданию циклической ссылки (как VS любезно сообщите мне).

  • Intellisense, без рекомендаций.

  • Добавление директивы Using, но веб-проект не является доступным пространством имен для выбора из

Это сайт ASP.NET MVC на 4.6.1. Контроллер живет в папке Controllers под веб-проектом. Новый интерфейс находится в отдельном проекте Interfaces в том же решении.

1 Ответ

1 голос
/ 25 октября 2019

Переместите View Models в свой собственный проект, а затем назовите его как в интерфейсе, так и в веб-проекте.

...