Xamarin.forms 通过容器的依赖注入

Xamarin.forms 通过容器的依赖注入,xamarin.forms,dependency-injection,interface,containers,autofac,Xamarin.forms,Dependency Injection,Interface,Containers,Autofac,在Xamarin.Forms中,我有一个简单的容器(AutoFac,但它可以是任何其他容器),只有2个映射: static class BootStrap { public static IContainer Configure() { var builder = new ContainerBuilder(); builder.RegisterType<MainPageViewModel>().

在Xamarin.Forms中,我有一个简单的容器(AutoFac,但它可以是任何其他容器),只有2个映射:

static class BootStrap
    {
        public static IContainer Configure()
        {
            var builder = new ContainerBuilder();

            builder.RegisterType<MainPageViewModel>().As<IMainPageViewModel>().SingleInstance();
            builder.RegisterType<MainPage>().As<IMainPage>().SingleInstance();

            return builder.Build();

        }
    }
这是MinPageViewModel类:

public class MainPageViewModel : INotifyPropertyChanged, IMainPageViewModel
{

}
为了建立映射,我使用这个App类

 public App()
 {
            InitializeComponent();

            MainPage = new NiceMasterDetailPage();
            BootStrap.Configure();
 }
我得到的错误是,我没有用于主页的默认ctor,但我不想使用用于主页的默认ctor。
我想使用一个以接口为参数的ctor——这就是依赖注入应该如何工作的。有人知道如何克服此问题吗?

通过容器解决所需页面,而不是尝试手动初始化

//...

IContainer  container;

public App() {
    InitializeComponent();

    container = BootStrap.Configure();

    MainPage = container.Resolve<MainPage>();        
}

//...
/。。。
集装箱;
公共应用程序(){
初始化组件();
container=BootStrap.Configure();
MainPage=container.Resolve();
}
//...

这样,容器将注入所解决类型的任何依赖项

此问题是否已解决?如果是,则将提供的解决方案标记为答案。
//...

IContainer  container;

public App() {
    InitializeComponent();

    container = BootStrap.Configure();

    MainPage = container.Resolve<MainPage>();        
}

//...