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?