What’s new in System.Reflection (and friends)

Figured I’d take the opportunity to capitalize on the increased link traffic Brad sent my way, by giving a quick and dirty overview of “What’s new in Reflection”. Illustrated are features I believe are worth their weight in gold – it’s a subset of the overall change list. I wrote some of this a little…

43

Late-bound invocation notes – CallVirt, Delegates, DynamicMethod, InvokeMember.

I’ve been cooking up some notes on the ways one may do late-bound or dynamic invocation. It’s unpolished, but hopefully you can dig yourself out of the weeds to get something out of it. Don’t expect it to be complete, but if there’s enough interest, I’ll invest the time to polish it up. Invocation Invocation…

23

CLR Generics and code sharing

It’s been a while since I’ve posted – we’ve been busy getting Beta 2 ready, and that means fixing bugs, bugs, and more bugs. I have a bunch of nearly complete posts, mostly around Reflection and type system identity, which I’ll be kicking out soon I hope. Lately, I’ve received a few questions around code…

22

hello, world… LCG (Lightweight Code Gen) style!

I’ve finally gotten around to cooking up a post about the the spectrum of late-bound invocations one may make over methods, and it includes a look at a new Whidbey feature called LCG (Lightweight Code Gen). I’ll be posting the invocation story very soon, but I figured I’d give a very brief overview of LCG first:…

22

CLR Dynamic languages under the hood (Part 1 of many)

There seems to be a fair amount of recent press and blog action surrounding the dynamic or “scripting” language movement, especially when the context includes virtual machines. While I wont bother commenting on why this is the case, I figured I would cook up a few rough notes (and I do stress that these are…

16

Good For Nothing Compiler (PDC – TLN410) and other goodies

Joe Duffy and I were really impressed with the amount of people who showed up for the PDC session “Write a Dynamic Language compiler in an hour” at the PDC last month. It confirmed my belief that customers care for details about compiler technologies and the managed libraries that enable them. We promised source download…

14

hello, world… Reflection.Emit style!

Before I head home, I thought I’d post up your typical “Hello, World” style app in Reflection.Emit. ~20 lines of C# code, not too bad for code generation of a Console.WriteLine. For those who don’t know what Reflection.Emit is, or what it can do, have a look here here and here for starters. using System;using System.Reflection;using System.Reflection.Emit;using…

13

C# command line FTP server

I’ve been working on a command line driven managed FTP server for the past few weekends. Something fun I’ve been doing on my off-time. Feel free to check it out: http://www.gotdotnet.com/Community/UserSamples/Details.aspx?SampleGuid=0a7606f3-f8ec-4e39-8d0e-517248b7164c. It only supports a subset of the FTP RFC, but hey, one could extend it and post the result here right? =)

12

CLR Metadata – please sir, let me consume the bits…

Firstly, the big metadata diagram. Thanks to Chris King for this absolute gem. Now, on to the various ways developers can read and write metadata bits…   Unmanaged Metadata Reader API’s I mentioned various times before that there exists Unmanaged Metadata reader/writer APIs that you can use to traverse and write out metadata structures with. It’s…

11

More late-bound invocation scenario notes

There are various other scenario’s in the invocation space that have not been dissected. I mentioned a few of them in the comments section of one of my other posts. To be a little more illustrative, this posting will iterate over some of these scenario’s, and provide notes for each. It’s worthwhile to remember, this…

11