FAQ C++/CLI et VC++.Net
FAQ C++/CLI et VC++.NetConsultez toutes les FAQ
Nombre d'auteurs : 29, nombre de questions : 248, création le 22 février 2013
Pour instancier une classe à partir d'un type, il vous faudra utiliser la classe Activator :
// Récupération du type à instancier dynamiquement
Type ^
objType =
Test::
typeid
;
// Instance dynamique à partir du type donné
Object ^
objInstanceDynamique =
Activator::
CreateInstance(objType);
// Casting de l'objet
Test ^
objTest =
(Test^
)objInstanceDynamique;
Lien : System.Activator
Pour instancier un classe à partir d'une chaîne de caractères, il vous faudra dans un premier temps transformer cette châine en un objet de type Type. A partir de l'objet Type obtenu, vous pourrez créer une instance grâce à la classe Activator :
// Récupération du type à instancier dynamiquement à partir d'une chaîne de caractères
Type ^
objType =
Type::
GetType("Test"
);
// Vérification si le type a bien été retrouvé
if
(objType !=
nullptr
)
{
// Instance dynamique à partir du type donné
Object ^
objInstanceDynamique =
Activator::
CreateInstance(objType);
// Casting de l'objet
Test ^
objTest =
(Test ^
)objInstanceDynamique;
}
else
{
Console::
WriteLine("Le type semble être incorrect!"
);
}
Lien : System.Activator
Lien : System.Type