2017-01-23 30 views
0

我正在寻找一种方法,我可以通过简单喷油器来查找向Xamarin Forms Dependency Service注册的服务,当服务无法由容器解决时。有没有办法用简单的注射器做到这一点?简单的喷油器回退到Xamarin窗体DependencyService

+0

您是否可以改进您的问题并详细阐述如何找到在Xamarin Forms Dependency Serbice中注册的服务以及为什么这些服务不能由Container解决? – 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还是服务位置,因此也不应该被使用! –

相关问题