So erstellen Sie ein mehrdimensionales Array mit Reflection.Emit

8

Ich möchte mit Reflection.Emit ein mehrdimensionales Array erstellen und dessen Element festlegen. Wie der folgende C # -Code:

%Vor%

Und in IL-Code:

%Vor%

Der IL-Code zum Erstellen eines Arrays:

%Vor%

Und der IL-Code zum Setzen des Array-Elements:

%Vor%

Welche Art von IL Generator.Emit () - Code entspricht diesen beiden IL-Satz?

    
nineveh.Y 27.03.2016, 18:25
quelle

2 Antworten

3

Sie können diese IL fast verbal übersetzen:

%Vor%

Natürlich müssen Sie die Reflektion verwenden, um das ConstructorInfo - und MethodInfo -Objekt zu erhalten, das Sie für die Codes Newobj und Call benötigen.

    
poke 27.03.2016 18:40
quelle
3

Hier ist ein Beispiel:

%Vor%

In diesem Beispiel wird eine dynamische Methode erstellt, die das Array erstellt, den Wert in [1,1] füllt und dann das Array zurückgibt.

    
Yacoub Massad 27.03.2016 18:40
quelle

Tags und Links