Xamarin 表单、棱镜表单和 IoC
Xamarin Forms, Prism Forms & IoC
我有一个最初使用 Prism 和 Unity 开发的 Xamarin Forms 应用程序。我发现 Unity 在第一次解析对象时相当慢,但一旦第一次解析通过,相同对象类型的所有后续解析都明显更快。
根据我在 上收到的一些不相关的建议,我决定尝试从 Unity 切换到 DryIoc。不幸的是,我发现在解析对象时速度更慢,但在随后解析相同对象类型的新实例时速度没有提高。
所以,我的问题是,我可以对任何一个容器做些什么来提高性能吗?例如...
- Unity 中是否有任何允许我预先配置的东西
可能创建的对象,以便第一个
决议与后续决议一样快?
- 我可以用 DryIoc 做些什么来加快所有对象的分辨率吗?
供参考,我自己对each的用法很简单;我对大多数对象(设置、数据库等)使用 RegisterInstance
,并通过构造函数将它们注入到我的 ViewModel 对象中。 Forms 和 ViewModel 对象本身都是使用 Prism RegisterTypeForNavigation
扩展方法
注册的
首先,您需要切换到 UseInstance 并检查结果。
那么理想情况下,针对特定用例对 DryIoc 与 Unity 进行测试会很棒。
最后,可能跟这个问题有关https://bitbucket.org/dadhi/dryioc/issues/453/migration-from-unity
我看到的问题与 IoC 容器无关,而是与 5 月初引入的 a problem with Xamarin Visual Studio 的 15.2 更新有关。安装最新更新 (15.2.26430.12) 并重建解决方案恢复了我所期望的那种性能。
我有一个最初使用 Prism 和 Unity 开发的 Xamarin Forms 应用程序。我发现 Unity 在第一次解析对象时相当慢,但一旦第一次解析通过,相同对象类型的所有后续解析都明显更快。
根据我在
所以,我的问题是,我可以对任何一个容器做些什么来提高性能吗?例如...
- Unity 中是否有任何允许我预先配置的东西 可能创建的对象,以便第一个 决议与后续决议一样快?
- 我可以用 DryIoc 做些什么来加快所有对象的分辨率吗?
供参考,我自己对each的用法很简单;我对大多数对象(设置、数据库等)使用 RegisterInstance
,并通过构造函数将它们注入到我的 ViewModel 对象中。 Forms 和 ViewModel 对象本身都是使用 Prism RegisterTypeForNavigation
扩展方法
首先,您需要切换到 UseInstance 并检查结果。
那么理想情况下,针对特定用例对 DryIoc 与 Unity 进行测试会很棒。
最后,可能跟这个问题有关https://bitbucket.org/dadhi/dryioc/issues/453/migration-from-unity
我看到的问题与 IoC 容器无关,而是与 5 月初引入的 a problem with Xamarin Visual Studio 的 15.2 更新有关。安装最新更新 (15.2.26430.12) 并重建解决方案恢复了我所期望的那种性能。