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

C# Discussion :

Type.GetType retourne null


Sujet :

C#

  1. #1
    Nouveau membre du Club
    Inscrit en
    Septembre 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Septembre 2009
    Messages : 48
    Points : 31
    Points
    31
    Par défaut Type.GetType retourne null
    Bonjour à tous,

    Voici le contexte : J'utilise visual studio 2008. Je doit charger des workflows Activities (des activities de bases et des customs activities). Quand je charge les customs activities, impeccable mais quand ce sont les activies de bases, la fonction Type.GetType(mastring) me renvoi Null.

    Exemple de chaine de caractère qu'il tente de charger :
    "System.Workflow.Activities.CallExternalMethodActivity, System.Workflow.Activities"

    Voici le message d'erreur que j'obtiens quand j'ajoute le paramètre qui permet de lever une exception :
    Could not load file or assembly 'System.Workflow.Activities' or one of its dependencies. The system cannot find the file specified.
    Quelqu'un a une idée du problème ??

    Ca fait deux jours que je suis sur ce problème et pour le moment, je n'ai rien trouvé de concluant.

    Merci à vous.

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 147
    Points : 12 254
    Points
    12 254
    Par défaut
    Dans les traces de VS, y-a-t-il des traces du chargement de l'assembly "System.Workflow.Activities" ?

  3. #3
    Nouveau membre du Club
    Inscrit en
    Septembre 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Septembre 2009
    Messages : 48
    Points : 31
    Points
    31
    Par défaut
    Citation Envoyé par bacelar Voir le message
    Dans les traces de VS, y-a-t-il des traces du chargement de l'assembly "System.Workflow.Activities" ?
    Comment on regarde ca ?

    Désolé, je suis jeune développeuse.

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 147
    Points : 12 254
    Points
    12 254
    Par défaut
    C'est dans la fenêtre "Sortie" ("Output" en Anglais) de VS.
    Il y une DropDownList au haut de la fenêtre, sélectionnez "Debug".
    Lors d'une session de debugging (via F5 par exemple), toutes les traces sont affichées dans cette fenêtre ainsi que les dll chargées par le programme en cours d'exécution.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Septembre 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Septembre 2009
    Messages : 48
    Points : 31
    Points
    31
    Par défaut
    Citation Envoyé par bacelar Voir le message
    C'est dans la fenêtre "Sortie" ("Output" en Anglais) de VS.
    Il y une DropDownList au haut de la fenêtre, sélectionnez "Debug".
    Lors d'une session de debugging (via F5 par exemple), toutes les traces sont affichées dans cette fenêtre ainsi que les dll chargées par le programme en cours d'exécution.
    Ok merci, je regarde ca tout de suite.

  6. #6
    Nouveau membre du Club
    Inscrit en
    Septembre 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Septembre 2009
    Messages : 48
    Points : 31
    Points
    31
    Par défaut
    Voici les 2 lignes que j'ai trouvé :

    'MaSolution.Tips.WorkflowDesigner.exe' (Managed): Loaded 'C:\WINDOWS\assembly\GAC_MSIL\System.Workflow.Activities\3.0.0.0__31bf3856ad364e35\System.Workflow.Activities.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.

    'WebDev.WebServer.EXE' (Managed): Loaded 'C:\WINDOWS\assembly\GAC_MSIL\System.Workflow.Activities\3.0.0.0__31bf3856ad364e35\System.Workflow.Activities.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
    C'est un peu du charabia pour moi

  7. #7
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 147
    Points : 12 254
    Points
    12 254
    Par défaut
    Don't Panic. ;-)

    On va faire avec un peu de méthode.
    Utilisez la version qui déclenche une exception.
    Lors du lancement de l'exception, vérifiez les traces dans la fenêtre Output. Il y aura vraisemblablement des informations intéressantes dedans.
    Dans l'exception générée, il doit aussi avoir un membre de nom "InnerException" qui peut aussi contenir des informations plus précises sur le problème. Les exceptions .NET, c'est comme des poupées gigognes, il peut avoir une exception dans une exception.

  8. #8
    Nouveau membre du Club
    Inscrit en
    Septembre 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Septembre 2009
    Messages : 48
    Points : 31
    Points
    31
    Par défaut
    Merci de m'aider Bacelar, c'est gentil.

    Voici les dernières lignes que j'obtiens :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    System.Workflow.Runtime.Hosting Information: 0 : SqlWorkflowPersistenceService OpenConnection start: 10/06/2009 14:44:03
     
    System.Workflow.Runtime.Hosting Information: 0 : SqlWorkflowPersistenceService. OpenConnection end: 10/06/2009 14:44:03
     
    System.Workflow.Runtime.Hosting Information: 0 : A first chance exception of type 'System.IO.FileNotFoundException' occurred in mscorlib.dll
     
    SqlWorkflowPersistenceService.RetrieveExpiredTimerIds ExecuteReader start: 10/06/2009 14:44:03
     
    System.Workflow.Runtime.Hosting Information: 0 : SqlWorkflowPersistenceService.RetrieveExpiredTimerIds ExecuteReader end: 10/06/2009 14:44:03
    L'innerException est null.

    Le message est :
    Could not load file or assembly 'System.Workflow.Activities' or one of its dependencies. The system cannot find the file specified.
    et dans System.IO.FileNotFoundException :
    {"Could not load file or assembly 'System.Workflow.Activities' or one of its dependencies. The system cannot find the file specified.":"System.Workflow.Activities"}

  9. #9
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 147
    Points : 12 254
    Points
    12 254
    Par défaut
    On va activer l'arrêt sur lancement d'exception.
    Menu Debug -> Exceptions... -> Common Language Runtime Exceptions -> System.IO -> System.IO.FileNotFoundException -> Checker la première Colonne ("Throw")

    Après cette manipulation, VS va s'arrêter dès le lancement de l'exception "System.IO.FileNotFoundException".
    On relance le programme et ont s'arrêtera pilepoil au moment du problème de chargement du fichier.

  10. #10
    Nouveau membre du Club
    Inscrit en
    Septembre 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Septembre 2009
    Messages : 48
    Points : 31
    Points
    31
    Par défaut
    J'ai suivi les instructions.

    Voici la dernière trace affichée :
    'MaSolution.Tips.WorkflowDesigner.exe' (Managed): Loaded 'C:\WINDOWS\assembly\GAC_MSIL\System.Workflow.Runtime\3.0.0.0__31bf3856ad364e35\System.Workflow.Runtime.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
    Que dois-je chercher ?

  11. #11
    Nouveau membre du Club
    Inscrit en
    Septembre 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Septembre 2009
    Messages : 48
    Points : 31
    Points
    31
    Par défaut
    Solution trouvé !!!

    Au lieu de faire un "Type.GetType" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.componentClass = Type.GetType(componentClassName);

    Je fais ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    string[] CompositeString = componentClassName.Split(',');
    Assembly componentClassAssembly= Assembly.LoadWithPartialName(CompositeString[1]);
    this.componentClass = componentClassAssembly.GetType(CompositeString[0]);
    Mel

  12. #12
    Nouveau membre du Club
    Inscrit en
    Septembre 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Septembre 2009
    Messages : 48
    Points : 31
    Points
    31
    Par défaut
    Merci beaucoup Bacelar pour ton aide.

    Mel

  13. #13
    Nouveau membre du Club
    Inscrit en
    Septembre 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Septembre 2009
    Messages : 48
    Points : 31
    Points
    31
    Par défaut
    La réponse vient de msdn :

    Vous pouvez utiliser la méthode GetType pour obtenir un objet Type pour un type se trouvant dans un autre assembly, si vous connaissez le nom complet de son espace de noms. GetType entraîne le chargement de l'assembly spécifié dans typeName. Vous pouvez également charger un assembly à l'aide de la méthode Load, puis utiliser les méthodes GetType ou GetTypes de la classe Assembly pour obtenir des objets Type.
    Sauf qu'au lieu de faire un "Load" comme ils le conseil, j'ai fait un "LoadWithPartialName". Le "Load" ne marchant pas dans mon cas.

    Le lien vers msdn : http://msdn.microsoft.com/fr-fr/library/w3f99sx1.aspx

    Voili Voilou

  14. #14
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 147
    Points : 12 254
    Points
    12 254
    Par défaut
    Bin c'est justement ça qui est bizarre.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. TTF_OpenFont() retournant NULL
    Par FabaCoeur dans le forum SDL
    Réponses: 4
    Dernier message: 11/04/2007, 16h30
  2. GetDC retourne NULL Oo
    Par Groove dans le forum OpenGL
    Réponses: 3
    Dernier message: 02/03/2007, 17h46
  3. Réponses: 3
    Dernier message: 02/03/2007, 11h41
  4. opérateur + dans SELECT retourne null ?
    Par david_chardonnet dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 19/01/2007, 10h47
  5. [C#] Comment mettre un type Guid à null ?
    Par qwertz dans le forum C#
    Réponses: 3
    Dernier message: 23/06/2006, 11h25

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