Я создаю библиотеку для разговорной обработки естественного языка . Во многих отношениях он действует так же, как MVC3 в том смысле, что он имеет контроллеры и методы действий. Он также использует внедрение зависимостей почти так же, как MVC3 при создании конструкторов для классов Controller. Основные отличия заключаются в том, что английское предложение заменяет как URL, так и значения формы HTTP; маршрутизация основана на подходящей структуре предложения; и передаваемые параметры являются значениями слов и фраз, используемых в английском предложении.
В настоящее время он использует Autofac для внедрения зависимостей, но я хотел бы удалить эту зависимость и позволить вызывающим абонентам использовать любой DI-контейнер.
Если я использую проект P & P / Codeplex Common Service Locator в своем решении, тогда вызывающим абонентам все равно нужно будет предоставить свои собственные реализации IServiceLocator
для экземпляра этого интерфейса, представленного моим движком. Если вместо этого я использую IDependencyResolver
из MVC3, то, по крайней мере, есть существующие реализации отображения из различных контейнеров DI в этот интерфейс.
Должен ли я: -
- использовать Common Service Locator и принудительно вызывать вызывающие стороны для реализации классов отображения.
- использовать интерфейс MVC 3
IDependencyResolver
, который уже имеет сопоставления с другими контейнерами.
- примите
object
в качестве средства разрешения зависимостей и введите его, чтобы получить единственный нужный мне метод, чтобы я мог использовать интерфейс MVC3, даже не принимая зависимость от ASP.NET MVC3.
- другой