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
Sommaire→Intéraction du C++/CLI avec le framework .Net→Instanciation dynamiquePour 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



