我有一些可重用的UserControls,在那些UserControls内我想访问一些服务实例,这些实例是我在bootstrapper中注册的。棱镜WPF - 如何访问UserControls或自定义控件中的ServiceLocator
我不能做构造函数注入,因为这些用户控件直接在xaml中使用,所以我试图访问ServiceLocator.Current
,但它抛出异常。
那么访问用户控件中的注册服务实例的最佳做法是什么?您不能执行构造函数注入,因为WPF需要无参数构造函数在xaml中加载它们。
(顺便说一句,我使用UnityBootstrapper)
“的用户控件内”是指在代码隐藏?什么阻止你使用(自动连线)视图模型(它具有在ist构造函数中注入的所有内容)? – Haukinger
你的用户控件位于哪里?在shell窗口中? – mm8
@Haukinger,“使用自动连线的视图模型并使用构造函数注入”是我的后备理念。这意味着如果我找不到其他解决方案,我会这样。我想知道所有棱镜人员如何做这种工作,最佳做法是什么。 –