GetViewModelCurrent ne fonctionne pas

Oct 6, 2014 at 10:04 AM
Bonjour,

J'ai voulu utiliser la méthode GetViewModelCurrent mais je reçoit une erreur "Type not found in cache" dans SimpleIoc.

En regardant le code, je pense que l'erreur vient de la ligne :
return (ViewModelBase) SimpleIoc.Default.GetInstance(_currentViewModel, key);
Cela ne devrait pas plutôt être ?
return (ViewModelBase )SimpleIoc.Default.GetInstance(typeof(ViewModelBase), key);
Cordialement,
Coordinator
Oct 6, 2014 at 10:10 AM
Bonjour,

la variable _currentViewModel est de type Type, elle correspond bien aux arguments de la fonction GetInstance. L'erreur "Type not found in cache" signifie généralement que SimpleIoc essaie d'accéder à un type qui n'a jamais était enregistré ou bien instancié, pourriez-vous me fournir un peu plus de code que je puisse analyser l'erreur s'il vous plait ?
Oct 6, 2014 at 10:31 AM
Edited Oct 6, 2014 at 10:31 AM
Je viens de faire un essai dans l'application exemple de navegar et j'ai la même erreur.
Dans La méthode GoBack du SecondViewModel je fais un appel :
SimpleIoc.Default.GetInstance<INavigation>().GetViewModelCurrent();
Je pense que cela vient de l'enregistrement dans SimpleIoc. Tu utilises
SimpleIoc.Default.Register<ViewModelBase>(() => (ViewModelBase)instanceNew, key);
Et donc cela associe l'instance avec le type ViewModelBase et la clé key.
Pour la récupération il ne retrouve pas d'instance associé à mon type car il attend ViewModelBase. Dans le reste de la classe tu utilises bien
var instance = (ViewModelBase)SimpleIoc.Default.GetInstance(typeof(ViewModelBase), key);
Pour accéder aux instances.

Cordialement,
Coordinator
Oct 6, 2014 at 10:56 AM
Désolé,

j'étais parti au départ sur la version WinRT. En effet j'avais supprimé de mes tests (pas bien :D) cette fonction sur mes derniers exemples. Et j'ai oublié de modifier cette fonction lors de mes dernières modifications.

J'ai modifié le code et remis en ligne, en revanche je ne suis pas sur ma machine me permettant de refaire une mise en ligne packagée ni même une mise à jour du package NuGet, je pourrais le faire ce soir. Si c'est urgent et possible je te propose de compiler toi même la DLL ou je peux te la faire parvenir sur un mail si tu le souhaites.

Merci à toi pour la détection du bug et encore désolé pour ce contretemps.
Oct 6, 2014 at 11:01 AM
Pas de problème si le package NuGet est dispo demain je peux attendre.

Merci pour ta réactivité.
Coordinator
Oct 6, 2014 at 11:04 AM
Il devrait être en ligne ce soir.

Merci d'utiliser Navegar et si tu rencontres d'autres soucis, ne pas hésiter sur les retours.
Coordinator
Oct 6, 2014 at 9:01 PM
Bonjour,


une version 3.4 corrigeant le bug est en ligne. Merci encore de me l'avoir signalé.