2017-09-19 2 views
0

Après la mise à niveau projet Xamarin.Android de MvvmCross 05.01 à 05.02, le code renvoie une erreur
MvvmCross 5.2 sur Xamarin.Android lancers francs Erreur 'Assemblée' n'a pu être trouvée

Error CS0246 The type or namespace name 'Assembly' could not be found (are you missing a using directive or an assembly reference?) 


public class CustomAndroidPresenter : MvxAndroidViewPresenter 
{ 
    public CustomAndroidPresenter(IEnumerable<Assembly> androidViewAssemblies) : base(androidViewAssemblies) 
    { 
    } 

    public override void Show(MvxViewModelRequest request) 
    { 
     if (request != null && request.PresentationValues != null) 
     { 
      if (request.PresentationValues.ContainsKey("MyCustomFlag")) 
      { 
       // Get intent from request and set flags to clear backstack. 
       var intent = base.CreateIntentForRequest(request); 
       intent.AddFlags(ActivityFlags.ClearTask | ActivityFlags.ClearTop | ActivityFlags.NewTask); 
       base.Show(intent); 
       return; 
      } 
     } 
     base.Show(request); 
    } 
} 
+0

Ajout 'l'aide System.Reflection.Assembly' jette les erreurs suivantes Erreur de CS7036' Il n'y a aucun argument donné qui correspond aux paramètres formels requis « androidViewAssemblies » de « CustomAndroidPresenter.CustomAndroidPresenter (IEnumerable ) » ' Erreur CS1503 'Argument 1: impossible de convertir 'Android.Content.Intent' en 'MvvmCross.Core.ViewModels.MvxViewModelRequest'' –

+0

Essayez d'utiliser' base.ShowIntent (intention) 'et ajoutez' using System.Reflection' au lieu de 'using System. Reflection.Assembly'. –

+0

@ YorkShen-MSFT Il jette Erreur \t CS7036 \t 'Il n'y a aucun argument donné qui correspond aux paramètres formels requis « androidViewAssemblies » de « CustomAndroidPresenter.CustomAndroidPresenter (IEnumerable ) »' le code complet que j'ai posté ici [lien] (https://forums.xamarin.com/discussion/103515/updating-mvvmcross-to-5-2-in-xamarin-android-xamarin-ios) –

Répondre

1

Il n'y a pas d'argument donné qui correspond au paramètre formel obligatoire 'androidViewAssemblies' de 'CustomAndroidPresenter.CustomAndroidPresenter (IEnumerable)'

Notez que dans votre classe Setup.cs, vous initialisez votre CustomAndroidPresenter comme:

var presenter = new CustomAndroidPresenter(); 

Mais vous ajoutez un constructeur dans votre CustomAndroidPresenter classe:

public CustomAndroidPresenter(IEnumerable<Assembly> androidViewAssemblies) : base(androidViewAssemblies) 
{ 
} 

Ainsi, lorsque vous initialisez CustomAndroidPresenter, donner le paramètre:

var presenter = new CustomAndroidPresenter(AndroidViewAssemblies); 

ne peut pas convertir 'Android.Content.Intent' à 'MvvmCross.Core.ViewModels.MvxViewModelRequest'

En utilisant base.ShowIntent(intent) au lieu de base.Show(intent).

+0

@Mukteswar Patnaik, avez-vous résolu votre problème? –

+0

Merci @ york-shen-msft, Oui c'est résolu –