Instancier une classe par la Reflection: pb de constructeur.

cs_bigflo93 Messages postés 50 Date d'inscription mardi 21 octobre 2003 Statut Membre Dernière intervention 13 septembre 2008 - 9 juin 2005 à 09:23
cs_bigflo93 Messages postés 50 Date d'inscription mardi 21 octobre 2003 Statut Membre Dernière intervention 13 septembre 2008 - 9 juin 2005 à 11:39
Bonjour à tous :)

Voilà, je fait un programme utilisant la réflection.
Je voudrais instancier un objet dynamiquement. Donc je fais:
object obj = Activator.CreateInstance(mon_type);

Seulement voilà, lorsque je rencontre une classe sans constructor par défault, ça marche pas ...
Alors comment faire ?
Existe-t-il un autre moyen d'instancier un objet ?

Merci d'avance pour vos réponses.

2 réponses

sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
9 juin 2005 à 11:05
oui... donner un tableau d'objets qui correspond à un constructeur de ta classe... ou bien, créer un constructeur sans paramètre.

Sébastien FERRAND

Blog : http://blogs.developpeur.org/sebmafate
</FO< body>
0
cs_bigflo93 Messages postés 50 Date d'inscription mardi 21 octobre 2003 Statut Membre Dernière intervention 13 septembre 2008
9 juin 2005 à 11:39
Oui, mais justement, je connais pas les arguments ... Je fais en fait de la déserialization manuelle à partir d'un flux xml. Et donc je ne connais que le type de la classe à instancier...

Sinon j'ai trouvé quelque chose d'équivalent:
object obj = System.Runtime.Serialization.FormatterServices.GetSafeUninitializedObject(mon_type)
Seulement, ça marche pas. Même par pour les string. Si je fais ça:
object obj = System.Runtime.Serialization.FormatterServices.GetSafeUninitializedObject(typeof(string))
ça me jete une exception: System.ArgumentException -> Uninitialized Strings cannot be created
0
Rejoignez-nous