Я не знаю, что является лучшей практикой, но я думаю, что вы можете сделать это с помощью WCF в Виндзоре (Ninject также имеет расширение WCF ).Зарегистрируйте свой сервис, затем установите свой распознаватель зависимостей и позвольте разрешителю зависимостей MVC выполнить тяжелую работу, например, с помощью конструктора:
Зарегистрируйте свой сервис:
container = new WindsorContainer().AddFacility<WcfFacility>();
container.Register(Component
.For<IService>()
.On(WcfEndpoint.FromConfiguration("...")))
.LifeStyle.Transient);
Установите средство разрешения зависимостей:
DependencyResolver.SetResolver(new WindsorDependencyResolver(container));
Тогда новый обработчик зависимостей MVC3 сможет внедрить ваш прокси-сервер службы в конструктор, например:
public HomeController(IService service)
{
// ...
}