Здравствуйте, GlebZ, Вы писали:
AVK>>2) Расширяющие методы (Extension methods). Хитрая штука. Это получается так:
GZ>GZ>//я написал
GZ>public MyCryptoClass
GZ>{
GZ>public Crypt(){CryptForSecure();};
GZ>}
GZ>//доброжелатель ответил
GZ>public static class Extensions
GZ>{
GZ>public static Crypt(this MyCryptoClass class){SaveForUnsecure();};
GZ>}
GZ>
GZ>Занятненько.
Что ты этим кодом хотел сказать?
GZ>[imho]Возможно даже не для сериализации, а для ленивых вычислений.
С этим и обычные лямбда-функции справяться, никакой необходимости в этом случае в кодогенерации нет. Я тут покумекал и кажется понял зачем они эту штуку ввели. Это нужно чтобы эффективно реализовывать на базе Query Expressions трехзвенные решения. На клиенте просто укатываем запрос в такой expression tree, а на сервере получаем готовый код, который не надо интерпретировать.
GZ> Особенно для Query это очень уместно. К тому-же обычно такие запросы можно оптимизировать. Возможно это будет редактируемый план выполнения.
Нет, этого не будет. Ты наверное неверно понял что это за штука. Никаких планов там нет, это просто описатель, по которому стандартная библиотека умеет емитом генерить код метода. Логика там примитивнейшая (скорее всего просто в ресурсах компилятор сохраняет скомпилированный IL-код). Очень вряд ли прикладной программист сможет вмешаться в процесс генерации этого кода. По крайней мере в текущей реализации этого точно нет.
... << RSDN@Home 1.2.0 alpha rev. 617>>