IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Silverlight Discussion :

Unable to cast object of type "System.Windows.Application"


Sujet :

Silverlight

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 103
    Points : 48
    Points
    48
    Par défaut Unable to cast object of type "System.Windows.Application"
    Bonjour,

    Lorsque j'utilise le visualisateur XAML de VS2010 et Blend, l'application plante et redémarre.

    J'ai cette erreur :
    Unable to cast object of type 'System.Windows.Application' to type 'ClientAdmin.App'.
    Alors que cette même ligne ne plantait pas avant et est utilisé sur un bon nombre de UserControl et ChildWindow.
    Dans mon cas, c'est un UC qui est dans un autre UC.

    Des idées pour résoudre le problème?

    Merci d'avance.

  2. #2
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Regarde dans ton App.xaml.cs si tu hérites bien de Application. Sinon je vois pas. Peut-être en faisant un Clean, suppression des répertoires bin et obj, fermeture de VS et Rebuild.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 103
    Points : 48
    Points
    48
    Par défaut
    Oui, bon héritage.
    Le clean/Rebuild ne fait rien :'(

  4. #4
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Tu obtiens cette erreur sur quelle ligne ?

    Est-ce qu'elle se trouve dans le constructeur ? Si oui essaye de la déplacer dans le Loaded.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 103
    Points : 48
    Points
    48
    Par défaut
    Quelle méthode Loaded?

  6. #6
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Citation Envoyé par OminiuS Voir le message
    Quelle méthode Loaded?
    L'event Loaded de tes UserControl. Tu t'y abonnes et tu mets ton code dans la callback.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 103
    Points : 48
    Points
    48
    Par défaut
    ça n'a rien changé!

    J'ai changé mes singletons (fait par un autre développeur, je précise

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    static private UCPlateforme s_objInstance = new UCPlateforme();
            static internal UCPlateforme Instance
            {
                get
                {
                    return s_objInstance;
                }
            }
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    static MainPage s_objInstance = null;
            static readonly object s_padlock = new object();
            public static MainPage InstanceWithoutResetPage
            {
                get
                {
                    lock (s_padlock)
                    {
                        if (s_objInstance == null)
                        {
                            s_objInstance = new MainPage();
                        }
                        return s_objInstance;
                    }
                }
            }


    et maintenant, lorsque j'ouvre blend, j'ai l'erreur suivante :
    System.UnauthorizedAccessException: Invalid cross-thread access.

  8. #8
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Ca c'est normal.

    Pour quelle raison tu veux faire un singleton sur ta MainPage ?

    Pour ton problème de cross thread tu peux ajouter ça, mais je sais pas du tout si ça va corriger ton autre problème, je dois dire que je n'ai jamais tenté de faire un singleton sur ma MainPage

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dispatcher.BeginInvoke(() => s_objInstance = new MainPage());

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 103
    Points : 48
    Points
    48
    Par défaut
    J'ai ma gestion de BusyIndicator sur la MainPage.
    Et ma MainPage contient tous les UC qui seront affiché!

    Je dois le code ci dessus dans le constructeur de la MainPage?

  10. #10
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Citation Envoyé par OminiuS Voir le message
    J'ai ma gestion de BusyIndicator sur la MainPage.
    Et ma MainPage contient tous les UC qui seront affiché!
    Oui mais pourquoi tu veux en faire un Singleton ?

    Je dois le code ci dessus dans le constructeur de la MainPage?
    Tu le mets à la place de la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    s_objInstance = new MainPage();

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 103
    Points : 48
    Points
    48
    Par défaut
    Bonjour,

    Pour la gestion du singleton, et bien j'appelle dans mes UC les méthodes AddCall et RemoveCall a partir du Singleton, comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MainPage.Instance.AddCall();
    S'il y a une autre manière, je suis preneur!

    Concernant la la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dispatcher.BeginInvoke(() => s_objInstance = new MainPage());
    a la place de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    s_objInstance = new MainPage();
    dans mon singleton, j'obtiens l'erreur suivante :
    Error 2 An object reference is required for the non-static field, method, or property 'System.Windows.Threading.Dispatcher.BeginInvoke(System.Action)' D:\ProjetScipio\CSCI Administration SCIPIO\Developpement\CSC Client Admin\MainPage.xaml.cs 48 25 CSC Client Admin
    Merci

  12. #12
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Tu peux récupérer ta MainPage de n'importe où à partir de ((MainPage)App.Current.RootVisual)

Discussions similaires

  1. Réponses: 3
    Dernier message: 15/02/2011, 14h01
  2. Réponses: 11
    Dernier message: 06/05/2009, 17h13
  3. Type du systeme d'exploitation
    Par WELCOMSMAIL dans le forum Windows
    Réponses: 3
    Dernier message: 02/10/2007, 11h02
  4. problème de cast object
    Par root76 dans le forum Langage
    Réponses: 14
    Dernier message: 12/04/2007, 13h42
  5. [héritage] cast avec le type de base
    Par Lere dans le forum C++
    Réponses: 6
    Dernier message: 16/09/2004, 18h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo