Laden...

ref Parameter einer Methode mit Reflection

Erstellt von maxE vor 19 Jahren Letzter Beitrag vor 19 Jahren 995 Views
M
maxE Themenstarter:in
456 Beiträge seit 2004
vor 19 Jahren
ref Parameter einer Methode mit Reflection

Hallo,

ich möchte mit dem Reflectionmechanismus eine Methode emmitieren.
Diese Methode soll einen ref Parameter enthalten. Wie kann ich einen Parameter mit den Reflection Klassen als ref kennzeichnen?
In ParameterBuilder und MethodBuilder finde ich nichts brauchbares.

Danke schon mal ...

I am Jack's smirking revenge.
I am Jack's raging bile duct.
I am Jack's cold sweat.
I am Jack's complete lack of surprise.
I am Jack's broken heart.
I am Jack's wasted life.

M
maxE Themenstarter:in
456 Beiträge seit 2004
vor 19 Jahren

OK, hat sich erleding 😉
Ich muß nur ein & an den Typbezeichner für die Parameter anhängen, wenn ich DefineMethod() aufrufe:
Type t = Type.GetType("System.Int32&");

I am Jack's smirking revenge.
I am Jack's raging bile duct.
I am Jack's cold sweat.
I am Jack's complete lack of surprise.
I am Jack's broken heart.
I am Jack's wasted life.

1.373 Beiträge seit 2004
vor 19 Jahren

Um einen Referenzparameter zu erstellen, musst du den Typ des Parameters so angeben:
Type.GetType("Namespace.Type&")


MethodBuilder mb = typeBuilder.DefineMethod( "MyMethod", MethodAttributes.Public,
				null, new Type[] { Type.GetType( "System.String&" ) } );

Dadurch erstellst du diese Methode:


void MyMethod(ref string ) {
}

Mit mb.DefineParameter kannst du danach neben dem Namen des Parameters noch festlegen, ob es ein out-, statt ein ref-Parameter sein soll:


// void MyMethod(ref string paramName)
mb.DefineParameter(1, ParameterAttributes.None, "paramName");
//bzw.
// void MyMethod(our string paramName)
mb.DefineParameter(1, ParameterAttributes.Out, "paramName");

MfG VizOne

M
maxE Themenstarter:in
456 Beiträge seit 2004
vor 19 Jahren

Danke VizOne,
hab's dann auch mit etwas Recherche rausbekommen 😉

I am Jack's smirking revenge.
I am Jack's raging bile duct.
I am Jack's cold sweat.
I am Jack's complete lack of surprise.
I am Jack's broken heart.
I am Jack's wasted life.