2013-06-18 27 views
0

在WinRT页面中,我如何注入依赖关系?如何在WinRT页面中使用DI

我想到做这样的:

/// <summary> 
/// A page that displays an overview of a single group, including a preview of the items 
/// within the group. 
/// </summary> 
public sealed partial class MyPage : NSyncApplication.WinRT.Common.LayoutAwarePage 
{ 
    IMyDependency _myDependency; 

    public MyPage(IMyDependency myDependency) 
    { 
     _myDependency = myDependency; 
     this.InitializeComponent(); 
    } 
    . 
    . 
    . 
} 

如果这不是一个很好的做法,请解释和推荐的替代解决方案。

注:

我不需要,可与WinRT中使用的特定DI容器,一个已经已经回答任何白痴都能看的NuGet画廊,并挑选他们的选择。

这个问题是关于如何插入Page工厂并注入我自己的依赖关系。我也看过Prism for WinRT,这件事情比我记得的WPF版本更令人费解。

重复:

  1. 我怎么能直接注入到页面。有没有一个页面工厂 或我可以挖掘添加自定义实例代码的东西?

  2. 我应该注入后面的代码并使其成为视图模型吗?棱镜MVVM示例具有 另一个ViewModel抽象层,与背后的 代码分开(这被视为View的一部分)。这是很好,很酷,但需要更多的接线和定制标记比我关心做我的相对简单的项目。我希望能够推出更“轻量级”的产品。但是可能有人反对这个观点,请解释一下。

+1

dup http://stackoverflow.com/questions/17161661/dependencyinjection-on-winrt-pages&http://stackoverflow.com/questions/10969417/dependency-injection-framework-for-windows-8-metro -apps – Xyroid

+2

这个问题特别要求**如何设置DI **,如“我如何插入页面工厂并注入我自己的依赖关系”一样清楚地说明。我们现在知道NInject *可以在WinRT中做必要的事情,但是(尽管有用的信息)不是这个问题的答案。 – qujck

回答

0

请检查MVVM-Light。他们使用VMLocator来展示XAML可以绑定的视图模型。在MSDN杂志上,您可以找到如何使用它的example