2010-12-01 5 views
1

Je crée dynamiquement des instances de mes objets dans le fournisseur de LINQ personnalisé Je suis bâtiment à l'aide de cet appel:Comment puis-je appeler le constructeur?

object result = Activator.CreateInstance(typeof(T)); 

Mon type T implémente une classe abstraite qui a un constructeur de prendre une instance d'un autre objet (T est essentiellement un emballage). Ma question est - est-il un moyen que je peux appeler explicitement le constructeur non défini par défaut, je peux me débarrasser de cette:

MyEntity entity = result as MyEntity; 
if(entity != null) 
    entity.UnderlyingEntity = e; //where e is what I am wrapping 

Répondre

7

Oui, juste fournissent les arguments du constructeur après l'objet Type, comme ceci:

object result = Activator.CreateInstance(typeof(T), arg1, arg2, ...); 
+0

très cool, plus simple que ce que je pensais! – dexter

1

Vous pouvez simplement appeler object result = Activator.CreateInstance(typeof(T), e);

Questions connexes