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 :

Cast dynamique variable


Sujet :

C#

  1. #1
    Membre actif Avatar de maxeur
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    416
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 416
    Points : 267
    Points
    267
    Par défaut Cast dynamique variable
    Bonjour à tous,

    Je dois mettre en placer un système d'instanciation dynamyque en ne conaissant que le nom (sous forme de chaine de caractère) de l'objet que je dois instancier. Jusque là tout va bien.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    foreach (Type type in monAssembly.GetTypes())
                    {
                        if (type.Name == resource.GetString(c1.Source))
                        {
                            a1 = (automate)Activator.CreateInstance(type);
                        }
                    }
    Dans le code précédent je crée donc un objet a1 en le castant avec le type automate.

    la valeur type est le type d'une des classes fille de cette classe automate

    Mon objet est donc du même type que la classe fille.

    Ensuite je veux faire appel à une méthode générique de la classe mère automate

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    a1 = automate.Load<automate>(cheminl5x.Text);
    Ici j'ai une erreur. le projet est généré mais lors de l'exécution de ce code j'ai une erreur.

    J'aimerai pouvoir appeler cette méthode avec la variable de type de la classe fille

    Est ce que c'est possible et si oui comment je peu faire ??
    J'ai fais des recherches mais rien ne fonctionne
    car je ne peut pas savoir que le type utilisé sera toujours le même, il faut que je puisse instancier l'objet et charger les données indépendemment du type de l'objet.

    Merci d'avance pour vos réponses en espérant que ce soit assez clair

  2. #2
    Membre émérite Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Points : 2 925
    Points
    2 925
    Par défaut
    Citation Envoyé par maxeur Voir le message
    Ici j'ai une erreur. le projet est généré mais lors de l'exécution de ce code j'ai une erreur.
    Tu peux préciser quelle est l'erreur ?

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    Citation Envoyé par maxeur Voir le message
    J'aimerai pouvoir appeler cette méthode avec la variable de type de la classe fille

    Est ce que c'est possible et si oui comment je peu faire ??
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    MethodInfo method = typeof(automate).GetMethod(Load);
    MethodInfo genericMethod = method.MakeGenericMethod(Type.GetType(nomClasseFille));
    genericMethod.Invoke(null, chemin15x.Text);

  4. #4
    Membre actif Avatar de maxeur
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    416
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 416
    Points : 267
    Points
    267
    Par défaut
    Bonjour,

    Merci pour vos réponses.

    En fait lors de l'exécution de l'application mon programme lève une application. Je pense que cela vient du fait que le type avec lequel j'appel ma méthode n'est pas le même que l'instance de l'objet. Du coup mon application s'arrète et va directement sur la ligne correspondant au chargement de mon fichier xml.

    Je vais essayer ce que m'a indiqué tomlev et je vais voir ce que cela donne

  5. #5
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 317
    Points
    13 317
    Par défaut
    Citation Envoyé par maxeur Voir le message
    Bonjour,

    Merci pour vos réponses.

    En fait lors de l'exécution de l'application mon programme lève une application.
    Je suppose qu'il faut lire "lève une exception"

    Quelle exception est levée et à quel endroit ?

  6. #6
    Membre actif Avatar de maxeur
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    416
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 416
    Points : 267
    Points
    267
    Par défaut
    Bonjour,

    Excuser moi j'ai oublié la balise résolu.

    La réponse de tomlev m'a permis de corriger l'erreur

    Merci encore

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 10/01/2013, 11h07
  2. Polymorphisme et cast dynamique
    Par vcoulon dans le forum C++
    Réponses: 16
    Dernier message: 21/03/2007, 14h03
  3. Réponses: 5
    Dernier message: 21/11/2006, 16h24
  4. Cast dynamique d'un objet ?
    Par elitost dans le forum Langage
    Réponses: 2
    Dernier message: 02/05/2006, 10h43
  5. [DP][héritage]sous-casting dynamique
    Par Le prophete dans le forum Général Java
    Réponses: 4
    Dernier message: 20/08/2004, 11h56

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