Dumindu De Silva
Dumindu De Silva

Reputation: 173

Casting Exception in LoadApplication when using LightInject

I'm new to Xamarin Forms and LightInject.

I'm getting an exeption :

System.InvalidCastException: Specified cast is not valid.

when calls LoadApplication(new App()); in MainActivity.cs

when calling the instance as a NavigationPage this happens. I tried MainPage = instance and it works fine. But I need to send the instance as a NavigationPage

Do you have any idea why this happens?

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

Here is the Stacktrace

here is the stacktrace


Here're the Exception Details

12-30 09:26:37.554 I/mono-stdout(18434): System.InvalidCastException: Specified cast is not valid. System.InvalidCastException: Specified cast is not valid. 12-30 09:26:37.558 I/mono-stdout(18434): at Xamarin.Forms.Internals.ToolbarTracker.RegisterChildPage (Xamarin.Forms.Page page) [0x0001c] in <3a9c335d80a748a29a8f8588acbed83f>:0 at Xamarin.Forms.Internals.ToolbarTracker.RegisterChildPage (Xamarin.Forms.Page page) [0x0001c] in <3a9c335d80a748a29a8f8588acbed83f>:0 at Xamarin.Forms.Internals.EnumerableExtensions.ForEach[T] (System.Collections.Generic.IEnumerable1[T] enumeration, System.Action1[T] action) [0x00010] in <3a9c335d80a748a29a8f8588acbed83f>:0 12-30 09:26:37.560 I/mono-stdout(18434): at Xamarin.Forms.Internals.EnumerableExtensions.ForEach[T] (System.Collections.Generic.IEnumerable1[T] enumeration, System.Action1[T] action) [0x00010] in <3a9c335d80a748a29a8f8588acbed83f>:0 12-30 09:26:37.561 I/mono-stdout(18434): at Xamarin.Forms.Internals.ToolbarTracker.TrackTarget (Xamarin.Forms.Page page) [0x00041] in <3a9c335d80a748a29a8f8588acbed83f>:0 at Xamarin.Forms.Internals.ToolbarTracker.TrackTarget (Xamarin.Forms.Page page) [0x00041] in <3a9c335d80a748a29a8f8588acbed83f>:0 at Xamarin.Forms.Internals.ToolbarTracker.set_Target (Xamarin.Forms.Page value) [0x00025] in <3a9c335d80a748a29a8f8588acbed83f>:0 12-30 09:26:37.563 I/mono-stdout(18434): at Xamarin.Forms.Internals.ToolbarTracker.set_Target (Xamarin.Forms.Page value) [0x00025] in <3a9c335d80a748a29a8f8588acbed83f>:0 at 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.ElementChangedEventArgs1[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.VisualElementRenderer1[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): at 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 element) [0x00027] in <02db0bcb95874f4db06b80f38eac4adf>:0 12-30 09:26:37.573 I/mono-stdout(18434): at Xamarin.Forms.Platform.Android.Platform.CreateRenderer (Xamarin.Forms.VisualElement element, Android.Content.Context context) [0x0001f] in <02db0bcb95874f4db06b80f38eac4adf>:0 at Xamarin.Forms.Platform.Android.Platform.CreateRenderer (Xamarin.Forms.VisualElement element, Android.Content.Context context) [0x0001f] in <02db0bcb95874f4db06b80f38eac4adf>:0 12-30 09:26:37.575 I/mono-stdout(18434): at Xamarin.Forms.Platform.Android.AppCompat.Platform.AddChild (Xamarin.Forms.Page page, System.Boolean layout) [0x00009] in <02db0bcb95874f4db06b80f38eac4adf>:0 at Xamarin.Forms.Platform.Android.AppCompat.Platform.AddChild (Xamarin.Forms.Page page, System.Boolean layout) [0x00009] in <02db0bcb95874f4db06b80f38eac4adf>:0 12-30 09:26:37.576 I/mono-stdout(18434): at Xamarin.Forms.Platform.Android.AppCompat.Platform.SetPageInternal (Xamarin.Forms.Page newRoot) [0x00096] in <02db0bcb95874f4db06b80f38eac4adf>:0 at Xamarin.Forms.Platform.Android.AppCompat.Platform.SetPageInternal (Xamarin.Forms.Page newRoot) [0x00096] in <02db0bcb95874f4db06b80f38eac4adf>:0 at Xamarin.Forms.Platform.Android.AppCompat.Platform.SetPage (Xamarin.Forms.Page newRoot) [0x00087] in <02db0bcb95874f4db06b80f38eac4adf>:0 at Xamarin.Forms.Platform.Android.FormsAppCompatActivity.InternalSetPage (Xamarin.Forms.Page page) [0x00052] in <02db0bcb95874f4db06b80f38eac4adf>:0 12-30 09:26:37.578 I/mono-stdout(18434): at 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): at Xamarin.Forms.Platform.Android.FormsAppCompatActivity.InternalSetPage (Xamarin.Forms.Page page) [0x00052] in <02db0bcb95874f4db06b80f38eac4adf>:0 at Xamarin.Forms.Platform.Android.FormsAppCompatActivity.SetMainPage () [0x0000c] in <02db0bcb95874f4db06b80f38eac4adf>:0 12-30 09:26:37.581 I/mono-stdout(18434): at Xamarin.Forms.Platform.Android.FormsAppCompatActivity.SetMainPage () [0x0000c] in <02db0bcb95874f4db06b80f38eac4adf>:0 at Xamarin.Forms.Platform.Android.FormsAppCompatActivity.LoadApplication (Xamarin.Forms.Application application) [0x0026f] in <02db0bcb95874f4db06b80f38eac4adf>:0 12-30 09:26:37.583 I/mono-stdout(18434): at Xamarin.Forms.Platform.Android.FormsAppCompatActivity.LoadApplication (Xamarin.Forms.Application application) [0x0026f] in <02db0bcb95874f4db06b80f38eac4adf>:0 at DipsDemoXaml.Droid.MainActivity.OnCreate (Android.OS.Bundle bundle) [0x0002f] in C:\Users\madura.d\source\repos\DipsDemoXaml\DipsDemoXaml\DipsDemoXaml.Android\MainActivity.cs:22 12-30 09:26:37.585 I/mono-stdout(18434): at DipsDemoXaml.Droid.MainActivity.OnCreate (Android.OS.Bundle bundle) [0x0002f] in C:\Users\madura.d\source\repos\DipsDemoXaml\DipsDemoXaml\DipsDemoXaml.Android\MainActivity.cs:22

Upvotes: 0

Views: 137

Answers (0)

Related Questions