The C# team has previously considered adding extension properties, events, etc. to C#.
Per Eric Lippert:
http://blogs.msdn.com/b/ericlippert/archive/2009/10
You're looking for the ConditionalWeakTable class.