Описание тега il

CIL (Common Intermediate Language) is a low-level language used by Microsoft .NET Framework and Mono.
1 ответ

Замените ссылку на параметр, не используя ключевое слово ref (используя IL)

Я ищу, чтобы иметь возможность заменить ссылку на объект параметра без использования ключевого слова ref. Причина, по которой я избегаю использования ref, заключается в сохранении вызова инициализатора коллекции, который ищет Add(T item) метод, и мн…
26 июл '11 в 21:11
2 ответа

Установка подчиненного свойства объекта с помощью ILGenerator.Emit

У меня есть некоторый код, который использует IlGenerator.Emit для создания и заполнения универсального объекта с использованием устройства чтения данных. Это прекрасно работает, однако мне нужно расширить его для заполнения простых дочерних объекто…
28 сен '14 в 17:27
2 ответа

DynamicMethod для ConstructorInfo.Invoke, что мне нужно учитывать?

У меня вопрос такой: Если я собираюсь построить объект DynamicMethod, соответствующий вызову ConstructorInfo.Invoke, какие типы IL мне нужно реализовать, чтобы справиться со всеми (или большинством) типами аргументов, когда я могу гарантировать, что…
29 дек '09 в 14:27
1 ответ

Генерация IL для рекурсивных методов

Я попытался сгенерировать IL для рекурсивного метода, используя следующую стратегию. Сначала я определил тип, используя следующий фрагмент кода. private void InitializeAssembly(string outputFileName) { AppDomain appDomain = AppDomain.CurrentDomain; …
27 июн '11 в 07:30
1 ответ

Вызов метода на поле

Мне просто любопытно, как бы я вызвал метод в поле, используя Emit, У меня этот класс сгенерирован public class AClass : IDynamicProxyTestInterface { private DynamicProxy<IDynamicProxyTestInterface> proxy; public AClass(DynamicProxy<IDynami…
16 фев '13 в 07:22
1 ответ

"неуправляемое" ограничение общего параметра в IL

Когда я компилирую следующий код: type Class1<'T when 'T : unmanaged> = class end type Class2<'T> = class end в IL это выглядит так: .class auto ansi serializable nested public Class1`1<T> extends [mscorlib]System.Object .class aut…
02 апр '15 в 23:40
1 ответ

Выполнить.NET IL код в C#

Есть ли способ выполнить массив кодов IL в C#, как шелл-коды в C/C++? Я хочу создать метод, преобразовать его в код IL, запутать его, сохранить в массиве байтов и, наконец, выполнить его, расшифровать содержимое массива и выполнить код IL. Например,…
11 окт '14 в 07:03
2 ответа

Как лучше проверить, является ли данный объект определенным типом значения?

Ниже приведены 2 наиболее часто используемых подхода для проверки перед распаковкой. myObject.GetType() == typeof(MyValueType) IL_0001: callvirt System.Object.GetType IL_0006: ldtoken UserQuery.MyValueType IL_000B: call System.Type.GetTypeFromHandle…
13 июл '13 в 21:30
1 ответ

Как перевести IL Code в AST

Можно ли сгенерировать AST из кода IL? Есть только вопросы относительно перевода исходного кода (C#/vb) в ASTs ( ссылка)
13 июн '12 в 11:01
2 ответа

Как извлечь код класса IL из загруженной сборки и сохранить на диск?

Как мне извлечь код IL для классов, которые генерируются во время выполнения с помощью отражения, чтобы я мог сохранить его на диск? Если вообще возможно. У меня нет контроля над кодом, который генерирует эти классы. В конце концов, я хотел бы загру…
1 ответ

Синтаксис ILAsm: когда команды начинаются с точки?

Некоторые команды / директивы ILAsm начинаются с точки, некоторые нет. В частности есть пара '.try' - 'catch', Есть ли правило объяснять / запоминать, когда мы используем точки (без запоминания полного списка всех случаев)?
28 окт '13 в 09:50
3 ответа

Есть ли другие цели для компиляции IL

Я почти уверен, что одной из причин компиляции языка высокого уровня в некоторый байт-код является то, что виртуальная машина (Java или.NET) может генерировать машинно-зависимые нативные инструкции. Это единственная причина? Если бы был какой-то спо…
19 сен '13 в 23:37
1 ответ

Модифицировать операнд IL с помощью Mono.Cecil

Я работаю с внешней библиотекой, в которой есть ошибка. Я выследил ошибку, это неправильное приведение, похожее на: var projectionBufferBase = startBuffer as IProjectionBuffer; Где это должно быть: var projectionBufferBase = startBuffer as IProjecti…
07 авг '14 в 18:31
1 ответ

C# IL код для добавления значения в словарь

У меня есть динамический метод, который принимает DataRecord и отображает данные на объект определенного типа. Источник от DynamicMethod_ILGenerator Объекты имеют словарь типа Dictionary<string,object> хранить любые свойства в DataRecord, кото…
12 май '11 в 00:19
1 ответ

Назначение и значение "specialname" и "rtspecialname" в IL

В настоящее время я пытаюсь понять код IL и внутренности C# специально, я написал простую мировую программу на C#, код которой: using System; class Program { public static void Main() { Console.WriteLine("Hello World"); } } и вот IL, созданный для к…
01 дек '15 в 17:57
4 ответа

Получить AST из сборки.Net без исходного кода (код IL)

Я хотел бы проанализировать сборки.Net, чтобы они не зависели от языка C#, VB.NET или чего-либо еще. Я знаю Roslyn и NRefactory, но они работают только на уровне исходного кода C#?Существует также проект " Общая инфраструктура компилятора: модель ко…
2 ответа

Можно ли программно проверять инструкции IL сборки, используя управляемый код?

Смотрите заголовок. Reflection.Emit, кажется, больше о создании новой динамической сборки, а не о загрузке существующей сборки и проверке ее IL.
13 май '10 в 02:17
1 ответ

Когда начинать использовать IL на более высоких языках

После просмотра нескольких проектов с открытым исходным кодом, большинство из которых были разработаны командой обмена стека. Я заметил, что несколько раз они просто пишут прямой код IL, встроенный в функцию C#. Прекрасный пример, который вы можете …
08 янв '15 в 20:23
3 ответа

Оптимизирован ли IL, генерируемый деревьями выражений?

Хорошо, это просто любопытство, не помогает никакой реальной жизни. Я знаю, что с деревьями выражений вы можете генерировать MSIL на лету, как это делает обычный компилятор C#. Поскольку компилятор может принимать решения об оптимизации, я испытываю…
0 ответов

.Net отличается IL, но тот же вывод. Зачем?

У меня есть 2 dll ("оригинал" и "новый"), и для одного метода IL сильно отличается внутри этих 2 dll (не только о nop, но о множестве различий). Но когда я декомпилирую эти две библиотеки, тогда C# создается точно так же для этих двух. Почему это пр…
24 сен '14 в 20:31