Prenons l'exemple du cours suivant:
class Sometype
{
int someValue;
public Sometype(int someValue)
{
this.someValue = someValue;
}
}
Je souhaite ensuite créer une instance de ce type en utilisant la réflexion:
Type t = typeof(Sometype);
object o = Activator.CreateInstance(t);
Normalement, cela fonctionnera, mais comme SomeType
n'a pas défini de constructeur sans paramètre, l'appel à Activator.CreateInstance
lèvera une exception de type MissingMethodException
avec le message " Aucun constructeur sans paramètre défini pour cet objet. " Existe-t-il un autre moyen de créer une instance de ce type? Ce serait un peu nul d'ajouter des constructeurs sans paramètre à toutes mes classes.
FormatterServices.GetUninitializedObject
ne permet pas de créer une chaîne non initialisée. Vous pouvez obtenir une exception:System.ArgumentException: Uninitialized Strings cannot be created.
veuillez garder cela à l'esprit.