2017-01-23 70 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還是服務位置,因此也不應該被使用! –

相關問題