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.
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.
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
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.