2017-01-23 2 views
0

Я ищу способ, которым я могу получить Simple Injector, чтобы найти службы, зарегистрированные в службе зависимостей форм Xamarin, когда в Контейнере не могут быть разрешены другие сервисы. Есть ли способ сделать это с помощью простого инжектора?Простой форсунок для замены Xamarin Forms DependencyService

+0

Можете ли вы улучшить свой вопрос и подробнее рассказать о том, как вам нужно найти службы, зарегистрированные в Xamarin Forms Dependency Serbice, и почему эти сервисы не могут быть разрешены Контейнером? – Steven

+0

@Steven With Unity Я могу добавить стратегию Builder или с помощью DryIoc. Я могу добавить правило, чтобы, когда контейнер не может найти ответ, 'IMyService', он попытается найти службу, сделав вызов' Xamarin.Forms.DependencyService .Get () '. Есть ли способ сделать это с помощью Simple Injector, чтобы, когда контейнер не может найти службу, я могу предоставить ему резервный способ найти службы? –

+0

Да, это абсолютно возможно с помощью простого инжектора. Но мне нравится знать, почему вы не хотите, чтобы Simple Injector создавал эти службы. Кажется, что для создания компонентов вашего приложения используются 2 контейнера, что, как правило, плохое, потому что вы будете ослепить свой контейнер, который не сможет предоставить вам какую-либо полезную диагностику вашей конфигурации. – Steven

ответ

2

Разрешение незарегистрированного типа может быть реализовано с использованием Container.ResolveUnregisteredType event.

Обратите внимание, что вы должны серьезно относиться к моим предупреждениям, как указано в комментариях. Ваш сценарий не хороший случай для разрешения незарегистрированного типа.

+1

+1 для комментариев. Неудачное молчание должно быть предотвращено независимо от того, что и использование Xamarin DependencyService - это местоположение службы и, следовательно, также не должно использоваться! –