Если я правильно читаю и вы хотите использовать свой контроллер в приложении WinForms, ответ будет таким: хотя (как и почти все) это технически возможно, вряд ли вы когда-нибудь захотите.
Самая большая проблема заключается в том, что функции ASP.NET MVC, делающие контроллеры полезными, реализованы в инфраструктуре вокруг контроллеров. Эти функции обеспечивают поток информации между представлениями, фильтрами и контроллерами (если назвать несколько) и не передаются явно между различными компонентами. Чтобы воспользоваться всеми этими функциями, вам нужно будет адаптировать MVC-фреймворк или написать свой собственный для обработки таких вещей, как ViewData и привязка и ... нет, просто нет. Может быть, если бы ваши контроллеры были достаточно просты ... что я говорю? Только не делай этого.
Лучшим решением было бы реорганизовать логику, которая будет повторно использоваться в бизнес-уровне или другой общей сборке, и включить ее в оба ваших проекта. Если ваши контроллеры написаны хорошо, в них не так уж много кода, поэтому вы не сильно экономите, используя их повторно. Я узнал, что из этой книги и после следования ее советам по нескольким проектам пришли к согласию с ней. Основная причина в том, что ваши контроллеры должны использоваться для управления потоком приложения и данными между пользовательским интерфейсом и остальной частью вашего приложения. Они не должны содержать сложную бизнес-логику.
Это мои 2 ¢ по этому вопросу в любом случае.