2010-12-01 16 views
1

ich dynamisch Instanzen meiner Objekte in dem Provider benutzerdefinierten Linq erstelle ich mit diesem Aufruf bin Gebäude:Wie kann ich den Konstruktor aufrufen?

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

Mein T-Typ eine abstrakte Klasse implementiert, die einen Konstruktor hat eine Instanz eines anderen Objekts zu nehmen (T ist im Wesentlichen ein Wrapper). Meine Frage ist - ist es eine Möglichkeit, ich explizit die Nicht-Standard-Konstruktor aufrufen können, so kann ich das loswerden:

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

Antwort

7

Ja, liefern nur die Konstruktorargumente nach dem Type Objekt, etwa so:

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

sehr cool nennen könnte, einfacher als ich dachte! – dexter

1

Sie haben soeben object result = Activator.CreateInstance(typeof(T), e);

Verwandte Themen