Xamarin.forms 通过容器的依赖注入
在Xamarin.Forms中,我有一个简单的容器(AutoFac,但它可以是任何其他容器),只有2个映射: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>().
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>();
}
//...