DynamicObject и ExpandoObject.
Что, если необходимо создать собственный динамический объект? Для этого на выбор доступно два варианта: наследование от DynamicObject либо использование…
Что, если необходимо создать собственный динамический объект? Для этого на выбор доступно два варианта: наследование от DynamicObject либо использование…
Представьте себе, что к приложению можно добавить возможности обработки сценариев. При этом допускается передача значений в сценарий и из…
Теперь давайте рассмотрим другое полезное применение ключевого слова dynamic — в контексте проекта взаимодействия с COM. Если нет опыта…
Теперь, когда прояснилась суть “динамических данных”, давайте исследуем, как они обрабатываются. В версии .NET 4.0 общеязыковая исполняющая среда (Common…
Вспомните, что неявно типизированные данные возможны только для локальных переменных в области определения члена. Ключевое слово var никогда не…
Ключевое слово var позволяет объявлять локальную переменную таким образом, что ее действительный тип данных определяется начальным присваиванием (это называется…
Процесс создания сложных .NET-приложений на CIL будет довольно “неблагодарным трудом”. С одной стороны, CIL представляет собой чрезвычайно выразительный язык…
Ознакомившись с синтаксисом и семантикой языка CIL, пришла пора закрепить изученный материал, создав .NET-приложение с использованием одной только утилиты…
Объявление локальных переменных в CIL Давайте посмотрим, как в CIL объявлять локальную переменную. Для этого предположим, что необходимо создать…
Последний аспект CIL-кода связан с ролью, которую играют различные коды операций. Вспомните, что под кодом операции понимается лексема CIL,…
Как уже известно, типы в .NET могут иметь различные члены. Так, перечисления могут иметь набор пар имен и значений,…
Определение и реализация интерфейсов в CIL Как ни странно, но типы интерфейсов в CIL тоже определяются с использованием директивы…
В данной статье мы рассмотрим реализацию специального пространства имен с набором всех базовых конструкций. Добавление ссылок на внешние сборки…
Теперь, когда стало более понятно, как изнутри выглядит типичный файл CIL-кода, давайте завершим эксперимент с двунаправленным проектированием. Для этого…
Утилита ildasm.exe предназначена для просмотра генерируемого компилятором C# кода CIL. Эта утилита также позволяет сбрасывать CIL-код, содержащийся внутри загруженной…
В языках .NET более высокого уровня (вроде C#) низкоуровневые детали CIL обычно насколько возможно скрываются из виду. Одной из…
Язык CIL является самым настоящим “родным” языком для платформы .NET. При создании .NET-сборки с помощью того или иного языка…
Домены приложений представляют собой логические разделы внутри процесса, которые используются для обслуживания сборок .NET. Однако на этом дело не…
Один процесс способен обслуживать множество доменов приложений посредством статического метода AppDomain.CreateDomain(). И хотя необходимость в создании новых доменов приложений…
При запуске исполняемого файла .NET среда CLR автоматически помещает его в используемый по умолчанию домен приложения внутри обслуживающего процесса….