Silverlight 4.0 使用UnityContainer通过代码隐藏将依赖项注入视图

Silverlight 4.0 使用UnityContainer通过代码隐藏将依赖项注入视图,silverlight-4.0,dependency-injection,unity-container,Silverlight 4.0,Dependency Injection,Unity Container,我有一个Silverlight应用程序,其中只有少数控件使用MVVM。我没有太多时间将所有控件移动到mvvm,但我需要向这些控件中注入一些服务 因为有些控件是通过在XAML中声明来创建的,比如: <UserControl> <Grid> <MyControlWithoutMVVM/> </Grid> </UserControl> 我看不到使用构造函数注入来注入依赖项的选项 但也许我错了,这就是为什么我要发布这个问题 有什么解决办法

我有一个Silverlight应用程序,其中只有少数控件使用MVVM。我没有太多时间将所有控件移动到mvvm,但我需要向这些控件中注入一些服务

因为有些控件是通过在XAML中声明来创建的,比如:

<UserControl>
<Grid>
<MyControlWithoutMVVM/>
</Grid>
</UserControl>

我看不到使用构造函数注入来注入依赖项的选项

但也许我错了,这就是为什么我要发布这个问题

有什么解决办法吗


我的CompositionRoot位于App类的ApplicationStartup Methodon中。

如果在XAML代码中放入元素,则无法使用构造函数注入,因为您无法控制这些对象的实例化

您可以从XAML中删除元素创建并查看

  • 允许您基于viewmodels工作并为您创建视图(viewmodel优先),或者允许您使用UI并解析viewmodels(view优先)

  • 允许您组合UI并在区域中放置元素,同时允许您使用DI创建对象
或者您可以放弃DI并切换到类似ServiceLocator的方法()