我有一个Silverlight应用程序,其中只有少数控件使用MVVM。我没有太多时间将所有控件移动到mvvm,但我需要在控件中注入一些服务。
因为通过在XAML中声明它们来创建一些控件,如:
<UserControl>
<Grid>
<MyControlWithoutMVVM/>
</Grid>
</UserControl>
我看不到使用Constructor Injection注入依赖项的选项。
但也许我错了,这就是我发布这个问题的原因。
有没有解决办法呢?
我的CompositionRoot在App类的ApplicationStartup方法中。
答案 0 :(得分:2)
如果在XAML代码中放置元素,则无法使用构造函数注入,因为您无法控制这些对象的实例化。
您可以从XAML中删除元素创建并查看
或
或者您可以删除DI并切换到类似ServiceLocator的方法(which I cannot recommend)。