Использование Funq в ServiceStack

  • Как я могу получить доступ Container экземпляр из контроллера?
  • Я должен использовать Container.Resolve в моем классе, но как я могу получить доступ Container пример?
  • Это синглтон?
  • Могу ли я использовать new Container() или есть какая-то цепь, как Funq.StaticContainer?

Спасибо Mythz за подсказку, а) или б) или в).

Я буду использовать решение Mythz, оно принято мной, но есть проблемы с его шаблоном (ServiceLocator Pattern), вы можете проверить здесь для получения дополнительной информации.

1 ответ

Решение

Есть несколько способов статически ссылаться на ваш экземпляр AppHost. Вы можете разрешить зависимость через экземпляр IAppHost с помощью:

HostContext.TryResolve<T>();
HostContext.Resolve<T>();
HostContext.AppHost.TryResolve<T>();

Если по какой-то причине вам нужен доступ к бетону Funq.ContainerВы можете получить к нему доступ через синглтон:

ServiceStackHost.Instance.Container

Находясь внутри Сервиса, Razor View Page и т. Д., Вы можете использовать:

base.TryResolve<T>();
Другие вопросы по тегам