Windows phone 7 PhoneApplicationPage没有无参数构造函数

Windows phone 7 PhoneApplicationPage没有无参数构造函数,windows-phone-7,ninject,Windows Phone 7,Ninject,我有一个带有Ninject IOC的Windows Phone应用程序 在某种程度上,我意识到MainPage.xaml.cs(首先初始化的应用程序的初始页面)需要有一个带参数的构造函数 我向构造函数添加了如下参数: public partial class MainPage : PhoneApplicationPage { private readonly Settings _settings; // Constructor publi

我有一个带有Ninject IOC的Windows Phone应用程序

在某种程度上,我意识到MainPage.xaml.cs(首先初始化的应用程序的初始页面)需要有一个带参数的构造函数

我向构造函数添加了如下参数:

public partial class MainPage : PhoneApplicationPage
    {
        private readonly Settings _settings;

        // Constructor
        public MainPage(Settings _settings)
在我的Ninject模块中,我有设置类型的活页夹:

this.Bind<Settings>().ToSelf().InSingletonScope();
this.Bind().ToSelf().InSingletonScope();
然而,每当我要运行一个应用程序时,我会在启动时收到一个MissingMethodException

我通过在MainPage()中保留一个无参数构造函数来解决这个问题,并使用带有Ninject的服务定位器模式来获取设置实例


我想知道是否有办法让我的应用程序服务定位器仍然免费

以Silverlight导航的工作方式,恐怕这是不可能的。您必须具有无参数构造函数。通常,您会使用服务定位器解析ViewModel,这是您需要注入依赖项的地方,而不是视图


请注意,不要陷入这样的陷阱:你应该像开发桌面应用一样开发你的移动应用。同样的规则不会自动应用。IOC是一种企业设计模式,旨在降低大型应用程序的复杂性,许多开发人员需要长期开发。手机应用程序通常是小型应用程序,很少有开发人员在短时间内开发,因此您不必严格遵循设计模式,甚至根本不必遵循设计模式。

您是否能够将依赖项移到ViewModel中,而不是移到实际的页面类中?这就是我正在做的,我有一个页面基类,通过Ninject加载它的模型。不确定是否可以替换创建页面的代码,我还没有看到。