web-dev-qa-db-fra.com

Comment implémenter le nouveau PrismApplication pour remplacer la classe Bootstrapper

Étant donné que la classe Bootstrapper est obsolète avec Prism 7, j'aimerais modifier mon application C # WPF à l'aide de la classe PrismApplication.

Est-ce que quelqu'un sait comment refactoriser une application Prism 6 en utilisant le Bootstrapper : UnityBootstrapper dans la nouvelle PrismApplication?

Je pose la question parce que la documentation concernant ces pré-versions est assez limitée et que je ne suis pas le meilleur pour comprendre ce que je dois faire en ne regardant que le code source de Prism. 

12
Tom

Cela dépend de ce que fait votre bootstrapper, mais Prism.Unity.PrismApplication a des méthodes similaires à remplacer, vous devriez donc pouvoir copier le code depuis le bootstrapper. Vous n'avez probablement besoin que de RegisterTypes et CreateShell. N'oubliez pas de mettre à jour App.xaml pour changer le type de votre application ...

App.xaml devrait être quelque chose comme ceci:

<prism:PrismApplication x:Class="WpfApp1.App"
                        x:ClassModifier="internal" 
                        xmlns="http://schemas.Microsoft.com/winfx/2006/xaml/presentation"
                        xmlns:x="http://schemas.Microsoft.com/winfx/2006/xaml"
                        xmlns:prism="http://prismlibrary.com/"/>

et par souci d'exhaustivité, App.xaml.cs:

internal partial class App
{
    protected override void RegisterTypes(IContainerRegistry containerRegistry)
    {
        throw new NotImplementedException();
    }

    protected override Window CreateShell()
    {
        throw new NotImplementedException();
    }
}
12
Haukinger

D'accord, appelez-moi muet ou peu importe, mais j'ai eu le même problème avec la même erreur: 

App.RegisterTypes (IContainerRegistery): aucune méthode appropriée trouvée pour remplacer

Mon problème était que je suis allé et copié et collé le App.xaml de ici et le cs de ici et n'a pas changé l'espace de nom dans le App.xaml de x:Class="Regions.App" à x:Class="WpfApp.App"

0
3xGuy