我有几个PCL使用IoC的Ninject。现在我正在尝试和MvvmCross一起创建一个Android Xamarin项目。guide说我可以遵循两个步骤,继续使用Ninject而不是MvvmCross实现。
这是我的Setup.cs:
public class Setup : MvxAndroidSetup
{
...
protected override IMvxIoCProvider CreateIocProvider()
{
return new NinjectMvxIocProvider(... some NinjectModule[]...);
}
}我采用了NinjectMvxIocProvider here的实现。
对我来说,它看起来还不错,但对我布局中的所有视图都会产生这样的输出:
MvxBind:Error: 70.85 View type not found - EditText [0:]
MvxBind:Error: 70.85 View type not found - EditText
11-02 15:56:05.872 I/mono-stdout( 4824): MvxBind:Error: 70.85 View type not found - EditText尽管使用适当的服务实现正确地创建了ViewModels,但是绑定并不起作用。
如果我从Setup.cs中删除override IMvxIoCProvider CreateIocProvider(),绑定就会正常工作。
这个实现中有没有什么我看不到的错误?也许有人有另一个实现,并准备分享?
发布于 2015-11-03 00:17:20
做这样的设置怎么样?
public static class App
{
public static StandardKernel Container { get; set; }
public static void Initialize()
{
var kernel = new Ninject.StandardKernel(new NinjectDemoModule());
App.Container = kernel;
}
}然后进行解析:
var viewModel = App.Container.Get<MainViewModel> (); 下面是一个工作示例:IoC Containers with Xamarin
https://stackoverflow.com/questions/33479956
复制相似问题