Это работы, которые, по крайней мере, мне интересны ...
public static class StrExtension
{
public static string twice(this string str) { return str + str; }
}
...
dynamic x = "Yo";
StrExtension.twice(x);
Тем не менее, если компилятор может найти правильный метод расширения во время компиляции, тогда я не понимаю, почему он не может упаковать набор методов расширения для поиска во время выполнения? Это было бы похоже на v-таблицу для методов, не являющихся членами.
EDIT:
Это круто ... http://www2.research.att.com/~bs/multimethods.pdf