Jeg arbejder for tiden på et lille fritidsprojekt, hvor en af sideeffekterne er at jeg kommer til at lære lidt IL og i særdeleshed; Blive fortrolig med namespacet: System.Reflection.Emit.
Min fremgangsmåde har hidtil været at bygge koden op i et demo-projekt, og så bruge Reflector til at se den resulterende IL. Ud fra IL’en, har jeg så forsøgt mig frem, til at Emit’te instruktioner der kan fremstille den ønskede IL. Lærrerigt, men meget besværligt.
Så faldt jeg over en pudsig lille plugin til Reflector:ReflectionEmitLanguageplugin.
Når man har dll’en åben i Reflector, kan man vælge: Reflection.Emit i sprogmenuen. I modsætning til de andre sprog der er understøttet, vises der her C# kode, der konstruerer IL til de valgte objekter. Det er uhyre smart..

Her har jeg valgt sæt-metoden på en property, og voilla: BuildMethodset_Name.
Man må undres over at den plugin overhovedet findes, da publikum må være uhyre lille, men ikke desto mindre findes den, og den har været en stor hjælp på mit projekt. Min nye ven..
Code on…