J'ai une classe de base abstraite générique dont je voudrais dériver un type dynamique construit par reflection.emit. De plus, j'ai besoin de personnaliser le constructeur par défaut de la classe dérivée pour initialiser certains champs. Pour construire correctement le constructeur par défaut de la classe dérivée, je dois obtenir le constructeur par défaut de la classe de base et l'appeler. Le problème est que je ne suis pas en mesure d'obtenir le constructeur par défaut de la classe de base.Obtention du constructeur par défaut d'une classe abstraite générique
Un exemple:
public abstract class Test<T>
{
private T data;
public abstract void Go();
}
public class TestDerive : Test<int>
{
public override void Go()
{
}
}
class Program
{
static void Main(string[] args)
{
ConstructorInfo[] constructors = typeof(Test<>).GetConstructors();
int length = constructors.Length;
}
}
J'ai tout essayé et la longueur est toujours égale à zéro. Je ne comprends pas. J'ai inspecté des cas similaires dans le réflecteur et il y a en effet un appel au constructeur de base de la classe abstraite. La question est comment puis-je faire pour faire la même chose?
Merci beaucoup. C'est tout –