Les Snippets

Connexion

Instancier une classe a partir de son nom

Niveau requis pour utiliser/comprendre cette source : 1 ( Débutant )
Créé le 31/03/2006 11:15:17 et initié par MorpionMx [Liste]
Date de mise à jour : 22/03/2007 09:14:16
Vue : 12184
Catégorie(s) : Class
Langages dispo pour ce code :
- C# 1.x, C# 2.x
- VB 2005, VB.NET 1.x
- Java
- PHP 4, PHP 5



Langage : C# 1.x , C# 2.x
Date ajout : 31/03/2006
Posté par MorpionMx [Liste]
DateMAJ : 31/03/2006
public static object GetInstance(Assembly a, string className) 
{
    try

    {
        Type t = a.GetType(className);      
        return Activator.CreateInstance(t); 
    }
    catch (ArgumentNullException) { return null; } // Type non trouvé
}

//Exemple d'utilisation 

object o = GetInstance(Assembly.GetExecutingAssembly(), "Namespace.MaClasse");

Remarque :
Ne pas oublier de déclarer l'espace de nom :
using System.Reflection;
Langage : VB.NET 1.x , VB 2005
Date ajout : 06/04/2006
Posté par FREMYCOMPANY [Liste]
DateMAJ : 06/04/2006
Public Module MyReflection 
     Public Function GetInstance(ByVal Assembly As Assembly, ByVal ClassName As String) As Object

          Try
               Return Activator.CreateInstance(Assembly.GetType(ClassName)) 
          Catch ex As Exception 
               'If An Error Is Occured then Return Nothing


               Return Nothing

          End Try

     End Function

     Public Function GetInstance(ByVal Assembly As Assembly, ByVal ClassName As String, ByVal Args() As Object) As Object

          Try
               Dim Attributes() As Object = {} 
               Return Activator.CreateInstance(Assembly.GetType(ClassName), Args, Attributes)
          Catch ex As Exception 
               'If An Error Is Occured then Return Nothing

               Return Nothing

          End Try
     End Function 
End Module

Langage : Java
Date ajout : 12/07/2006
Posté par Twinuts [Liste]
DateMAJ : 22/03/2007
public class InstanceByName {
    public static void main(String[] args) {
        //recuperation de l'instance
        //attention si la classe se trouve dans un package ne pas oublier
        //de mettre le chemin de la classe :
        //soit le package toto.tata
        //alors pour trouver la classe on doit mettre
        //getInstance("toto.tata.ClassInstance");
        ClassInstance ci = (ClassInstance)getInstance("ClassInstance");
        //petite verification
        System.out.println(ci);//ici on affiche la methode toString
    }
    
    public static Object getInstance(String name){
        try {
            return Class.forName("ClassInstance").newInstance();
        } catch (InstantiationException e) {
            System.err.println("Impossible d'instancer la classe");
        } catch (IllegalAccessException e) {
            System.err.println("Impossible d'acceder au construteur (non visible)");
        } catch (ClassNotFoundException e) {
            System.err.println("Impossible de trouver la classe");
        }
        return null;
    }
}
//la classe a instancier
class ClassInstance{
    public ClassInstance(){
        System.out.println("new instrance");
    }
    
    public String toString(){
        return "ClassInstance@" + hashCode();//pour afficher quelque chose
    }
}

Langage : PHP 4 , PHP 5
Date ajout : 13/06/2007
Posté par coucou747 [Liste]
<?php
class A{
    function test(){
        echo 'A';
    }
}
class B{
    function test(){
        echo 'B';
    }
}
$b='B';
$a=new $b();
$a->test();
?>

Snippets en rapport avec : Class, Instance, Reflection, Classe



Codes sources en rapport avec : Class, Instance, Reflection, Classe

{PHP} [PHP5] ORMAPPER 4 CRUD
Pourquoi réécrire moult fois les même choses ... A rien! Ce petit mapper sans grande prétention per...

{PHP} GÉNÉRATION DE CLASSES D'ACCÈS AUX DONNÉES À PARTIR DES TABLES DAO
Cette classe-script permet de générer des classes d'accès aux données en PHP4 ou PHP5 (au choix) à p...

{Javascript / DHTML} CLASS VERIFICATION DES SAISIES
JE sais qu'il y a plusieurs version de ce genre de code, toutefois je me permet de le mettre ici car...

{PHP} CLASSE DATABASE POUR CONNECTION ET MODIFICATION D'UNE BDD MYSQL
Hello Oui, je sais ce que vous vous dites : "encore une classe de connection a une base de donnée...

{PHP} EXEMPLE DE CLASSE DE GESTION DE PAGE DE FORMULAIRE
J'ai longtemps cherché comment gerer plusieurs formulaires et leurs affichage en une seule page sans...

{PHP} CLASSE "REMPLAÇANT" LES SESSIONS PHP (AVEC VÉRIFICATION DE L'ADRESSE IP)
Voici une classe PHP(5) de sessions. C'est le même principe que les sessions PHP sauf qu'ici, il y ...

{PHP} CLASSE OBJET DAO COUCHE D'ACCÈS À MYSQL DATA ACCESS OBJECT
/* ------------DAO------------ ----DataAcessObject------ EN fait, c'est une layer au-dessus de My...

{C / C++ / C++.NET} PORT COM (RS232) SUPER SIMPLE DANS UNE CLASSE
ce code n'est en fait qu'une reprise d'un code fait en c par ymca2003 http://www.cppfrance.com/code...

{Python} CLASSES POUR LA CONVERSION DE BASE
Modification d'un exemple depose par Marvin. Insertion d un nombre en base 10 , translation vers le...

{PHP} CLASS SQL PLUTÔT COMPLÈTE, AVEC UNE GESTION DES ERREURS PAR FICHIER
Bonjour, alors voilà en fait c'est une class SQL toute bête, rien de bien aprticulier, à part peut-ê...