Prism.Unity.Forms 8.1 container.resolve stoped working after upgrade from version 7.2

Viewed 56

I'm not a developer, but I managed to make an Xamarin.forms android app with prism 7.2, but recently I needed to add more features to the app and updated all NuGet packages, which updated Prism to version 8.

After the upgrade when I try to resolve on a tabbedpage:

_unityContainer.Resolve<IMyTabbedPageSelectedTab>().SetSelectedTab(0);

I get the following Unity.ResolutionFailedException: 'Resolution failed with error: No public constructor is available for type XXX.Interfaces.IMyTabbedPageSelectedTab.'

My interface is:

public interface IMyTabbedPageSelectedTab
{
    int SelectedTab { get; set; }
    void SetSelectedTab(int tabIndex);
}

My MainPageViewModel:

    public class MainPageViewModel : ViewModelBase, IMyTabbedPageSelectedTab
{
    private readonly IUnityContainer _unityContainer;

    private int _selectedTab;
    public int SelectedTab
    {
        get { return _selectedTab; }
        set
        {
            SetProperty(ref _selectedTab, value);
            Title = $"My Tabbed Page - Tab [{SelectedTab + 1}]";
        }
    }

    public MainPageViewModel(INavigationService navigationService, IUnityContainer unityContainer): base(navigationService)
    {
        Title = $"My Tabbed Page - Tab [{SelectedTab + 1}]";

        this._unityContainer = unityContainer;
        _unityContainer.RegisterInstance<IMyTabbedPageSelectedTab>(this, new ContainerControlledLifetimeManager());
    }

    public void SetSelectedTab(int tabIndex)
    {
        SelectedTab = tabIndex;
    }
}

Can someone shed some light on what may be the problem?

0 Answers
Related