0

我是 Xamarin Forms 和 LightInject 的新手。

我得到一个例外:

System.InvalidCastException:指定的强制转换无效。

当调用 LoadApplication(new App()); 在 MainActivity.cs

当将实例调用为 NavigationPage 时,会发生这种情况。我试过 MainPage = instance了,效果很好。但我需要将实例作为 NavigationPage 发送

你知道为什么会这样吗?

var container = new ServiceContainer();
container.Register<WardListPage>();
container.Register<WardListViewModel>();
container.Register<WardListService>();

container.Register<PatientListViewPage>();
container.Register<PatientListViewModel>();
container.Register<PatientService>();

container.Register<PatientDetailsViewPage>();
container.Register<PatientDetailsViewModel>();

var instance = container.GetInstance<WardListPage>();

MainPage = new NavigationPage(instance); //here the issue comes

这是堆栈跟踪

这是堆栈跟踪


这是异常详细信息

12-30 09:26:37.554 I/mono-stdout(18434): System.InvalidCastException: 指定的强制转换无效。System.InvalidCastException:指定的强制转换无效。12-30 09:26:37.558 I/mono-stdout(18434): 在 Xamarin.Forms.Internals.ToolbarTracker.RegisterChildPage (Xamarin.Forms.Page 页面) [0x0001c] 在 <3a9c335d80a748a29a8f8588acbed83f>:0 在 Xamarin.Forms.Internals .ToolbarTracker.RegisterChildPage(Xamarin.Forms.Page 页面)[0x0001c] in <3a9c335d80a748a29a8f8588acbed83f>:0 在 Xamarin.Forms.Internals.EnumerableExtensions.ForEach[T](System.Collections.Generic.IEnumerable 1[T] enumeration, System.Action1[T] 操作)[0x00010 ] 在 <3a9c335d80a748a29a8f8588acbed83f>:0 12-30 09:26:37.560 I/mono-stdout(18434): 在 Xamarin.Forms.Internals.EnumerableExtensions.ForEach[T] (System.Collections.Generic.IEnumerable1[T] enumeration, System.Action1 [T] 操作)[0x00010] 在 <3a9c335d80a748a29a8f8588acbed83f>:0 12-30 09:26:37.561 I/mono-stdout(18434):在 Xamarin.Forms.Internals.ToolbarTracker.TrackTarget(Xamarin.Forms.Page 页面) [0x00041] 在 <3a9c335d80a748a29a8f8588acbed83f> 中:0 在 Xamarin.Forms.Internals.ToolbarTracker.TrackTarget(Xamarin.Forms.Page 页面) [0x00041] 在 <3a9c335d80a748a29a8f8588acbed83f> 中:0 在 Xamarin.Forms.Internals.ToolbarTracker.TrackTarget .Page 值)[0x00025] in <3a9c335d80a748a29a8f8588acbed83f>:0 12-30 09:26:37.563 I/mono-stdout(18434):在 Xamarin.Forms.Internals.ToolbarTracker.set_Target(Xamarin.Forms.Page 值)[0x00025 ] 在 <3a9c335d80a748a29a8f8588acbed83f>:0 在 Xamarin.Forms.Platform.Android.AppCompat.NavigationPageRenderer.OnElementChanged (Xamarin.Forms.Platform.Android.ElementChangedEventArgs1[TElement] e) [0x000fe] in <02db0bcb95874f4db06b80f38eac4adf>:0 12-30 09:26:37.565 I/mono-stdout(18434): at Xamarin.Forms.Platform.Android.AppCompat.NavigationPageRenderer.OnElementChanged (Xamarin.Forms.Platform.Android.ElementChangedEventArgs1[TElement] e) [0x000fe] in <02db0bcb95874f4db06b80f38eac4adf>:0 at FormsControls.Droid.AppCompatAnimationNavRenderer.OnElementChanged (Xamarin.Forms.Platform.Android.ElementChangedEventArgs 1[TElement] e) [0x00000] in <9cf8e9b117d44fb7a184e024868cb7a5>:0 12-30 09:26:37.567 I/mono-stdout(18434): at FormsControls.Droid.AppCompatAnimationNavRenderer.OnElementChanged (Xamarin.Forms.Platform.Android.ElementChangedEventArgs1[TElement] e) [0x00000] in <9cf8e9b117d44fb7a184e024868cb7a5>:0 at Xamarin .Forms.Platform.Android.VisualElementRenderer 1[TElement].SetElement (TElement element) [0x000dd] in <02db0bcb95874f4db06b80f38eac4adf>:0 12-30 09:26:37.569 I/mono-stdout(18434): at Xamarin.Forms.Platform.Android.VisualElementRenderer1[TElement].SetElement (TElement element) [0x000dd] in <02db0bcb95874f4db06b80f38eac4adf>:0 12-30 09:26:37.571 I/mono-stdout(18434): 在 Xamarin.Forms.Platform .Android.VisualElementRenderer1[TElement].Xamarin.Forms.Platform.Android.IVisualElementRenderer.SetElement (Xamarin.Forms.VisualElement element) [0x00027] in <02db0bcb95874f4db06b80f38eac4adf>:0 at Xamarin.Forms.Platform.Android.VisualElementRenderer1 [TElement].Xamarin.Forms.Platform.Android.IVisualElementRenderer.SetElement (Xamarin.Forms.VisualElement 元素) [0x00027] 在 <02db0bcb95874f4db06b80f38eac4adf>:0 12-30 09:26:37.573 I/mono-stdout(18434):在 Xamarin.Forms.Platform.Android.Platform.CreateRenderer (Xamarin.Forms.VisualElement 元素,Android.Content.Context 上下文)[0x0001f] 在 <02db0bcb95874f4db06b80f38eac4adf>:0 在 Xamarin.Forms.Platform.Android.Platform.CreateRenderer (Xamarin .Forms.VisualElement 元素,Android.Content.Context 上下文)[0x0001f] 在 <02db0bcb95874f4db06b80f38eac4adf>:0 12-30 09:26:37.575 I/mono-stdout(18434):在 Xamarin.Forms.Platform.Android.AppCompat。 Platform.AddChild(Xamarin.Forms.Page 页面,System.Boolean 布局)[0x00009] 在 <02db0bcb95874f4db06b80f38eac4adf>:0 在 Xamarin.Forms.Platform.Android.AppCompat.Platform。AddChild(Xamarin.Forms.Page 页面,System.Boolean 布局)[0x00009] in <02db0bcb95874f4db06b80f38eac4adf>:0 12-30 09:26:37.576 I/mono-stdout(18434):在 Xamarin.Forms.Platform.Android.AppCompat .Platform.SetPageInternal (Xamarin.Forms.Page newRoot) [0x00096] 在 <02db0bcb95874f4db06b80f38eac4adf>:0 在 Xamarin.Forms.Platform.Android.AppCompat.Platform.SetPageInternal (Xamarin.Forms.Page newRoot) [0x00096] 在 <02db0680fbadf>fddb0680fbadf4 :0 在 Xamarin.Forms.Platform.Android.AppCompat.Platform.SetPage (Xamarin.Forms.Page newRoot) [0x00087] in <02db0bcb95874f4db06b80f38eac4adf>:0 在 Xamarin.Forms.Platform.Android.FormsAppCompatActivity.InternalSetPage (Xamarin.Forms.页页)[0x00052] 在 <02db0bcb95874f4db06b80f38eac4adf>:0 12-30 09:26:37.578 I/mono-stdout(18434):在 Xamarin.Forms.Platform.Android。AppCompat.Platform.SetPage (Xamarin.Forms.Page newRoot) [0x00087] in <02db0bcb95874f4db06b80f38eac4adf>:0 12-30 09:26:37.580 I/mono-stdout(18434): 在 Xamarin.Forms.Platform.Android.FormsAppCompatActivity。 InternalSetPage (Xamarin.Forms.Page 页面) [0x00052] 在 <02db0bcb95874f4db06b80f38eac4adf>:0 在 Xamarin.Forms.Platform.Android.FormsAppCompatActivity.SetMainPage () [0x0000c] 在 <02db0bcb95874f4db06b80f38eac4adf>:6:0-37.2 /mono-stdout(18434): 在 Xamarin.Forms.Platform.Android.FormsAppCompatActivity.SetMainPage () [0x0000c] in <02db0bcb95874f4db06b80f38eac4adf>:0 在 Xamarin.Forms.Platform.Android.FormsAppCompatActivity.LoadApplication (Xamarin.Forms.Application 应用程序) [0x0026f] in <02db0bcb95874f4db06b80f38eac4adf>:0 12-30 09:26:37.583 I/mono-stdout(18434): 在 Xamarin.Forms.Platform。Android.FormsAppCompatActivity.LoadApplication (Xamarin.Forms.Application 应用程序) [0x0026f] in <02db0bcb95874f4db06b80f38eac4adf>:0 在 DipsDemoXaml.Droid.MainActivity.OnCreate (Android.OS.Bundle bundle) [0x0002f] 在 C:\Users\madura.d \source\repos\DipsDemoXaml\DipsDemoXaml\DipsDemoXaml.Android\MainActivity.cs:22 12-30 09:26:37.585 I/mono-stdout(18434): 在 DipsDemoXaml.Droid.MainActivity.OnCreate (Android.OS.Bundle bundle ) [0x0002f] 在 C:\Users\madura.d\source\repos\DipsDemoXaml\DipsDemoXaml\DipsDemoXaml.Android\MainActivity.cs:22Android\MainActivity.cs:22 12-30 09:26:37.585 I/mono-stdout(18434): 在 DipsDemoXaml.Droid.MainActivity.OnCreate (Android.OS.Bundle bundle) [0x0002f] 在 C:\Users\madura .d\source\repos\DipsDemoXaml\DipsDemoXaml\DipsDemoXaml.Android\MainActivity.cs:22Android\MainActivity.cs:22 12-30 09:26:37.585 I/mono-stdout(18434): 在 DipsDemoXaml.Droid.MainActivity.OnCreate (Android.OS.Bundle bundle) [0x0002f] 在 C:\Users\madura .d\source\repos\DipsDemoXaml\DipsDemoXaml\DipsDemoXaml.Android\MainActivity.cs:22

4

0 回答 0