Enfin, a trouvé la réponse. Voici les étapes
Je - Obtenez le paquet NuGet "Xamarin.Forms.Labs" dans votre Android (UI) projet, semble-t-il maintenant est Scorchio.NinjaCoder.Xamarin.Forms.Labs
II - utiliser le code suivant dans SetUp.cs comme indiqué ci-dessous
using Android.Content;
using MvvmCross.Core.ViewModels;
using MvvmCross.Droid.Platform;
using Xamarin.Forms.Labs.Services;
namespace SomeProject.UI.Droid
{
public class Setup : MvxAndroidSetup
{
public Setup(Context applicationContext) : base(applicationContext)
{
var resolverContainer = new SimpleContainer();
resolverContainer.Register<IViewMethodCallService>(t => new ViewMethodCallService());
Resolver.SetResolver(resolverContainer.GetResolver());
}
protected override IMvxApplication CreateApp()
{
return new App();
}
}
}
Où "IViewMethodCallService" est l'interface, ayant la signature de la méthode, par exemple TestMethod(), dans votre projet PCL et "ViewMethodCallService.cs" est mise en œuvre de cette interface dans l'interface utilisateur ou d'un projet Android.
III - créer un objet de l'interface "IViewMethodCallService" comme indiqué ci-dessous
IViewMethodCallService callMethod= Resolver.Resolve<IViewMethodCallService>();
callMethod.TestMethod();
Les "ViewMethodCallService.cs" ressemble à ceci
using Android.Util;
[assembly: Xamarin.Forms.Dependency(typeof(ViewMethodCallService))]
namespace SomeProject.UI.Droid
{
public class ViewMethodCallService : Java.Lang.Object, IViewMethodCallService
{
public ViewMethodCallService()
{
}
public void TestMethod()
{
Log.Info("Hurrayyyyyyyyyyyyyyyyyyyyyyyyyy", "And I am calling this service");
}
}
}
Je suis cette réponse de this question et le lien mentionné en question si vous souhaitez faire plus de recherche. J'espère que ça aide quelqu'un.
Merci ** lowleetak ** pour votre réponse, mais si j'utilise l'injection de dépendance alors entrer dans une autre question à savoir comment référencer une classe d'interface utilisateur dans App.cs de PCL? Parce que cela entraînerait une dépendance circulaire et VS ne le permettra pas. Ce serait bien si vous pouviez fournir un petit exemple comme référence. –
Vous devrez être plus précis sur ce que vous essayez d'accomplir afin que nous puissions vous fournir plus de détails. – lowleetak