Публикации по теме 'il'


Приключения с типами данных в ИЛ
Как я уже упоминал в своем предыдущем посте , я буду иметь дело с IL в серии статей. В этом я хотел бы работать над типами данных и объявлением переменных в IL. Я прекрасно понимаю, что решить эту проблему несложно, но важно знать, какие типы данных лежат в основе IL. Честно говоря, большой разницы между именованием в типах данных C# и IL нет. Вторая часть этого поста будет посвящена объявлению переменных. Это большая часть любого языка, поэтому для меня это хорошая отправная..

Вопросы по теме 'il'

Получение IL-кода из бинарного файла DLL
Я изучаю ИЛ. Мне нравится инструмент .Net Reflector от RedGate (изначально Lutz). У меня уже есть книги Сержа Лидина и Ecma-335. Похоже, это все, что нам нужно для работы с IL (кроме ILAsm и ILDasm, конечно). Моя задача — разобрать бинарный...
3588 просмотров
schedule 25.02.2023

Поддержка Visual Studio/RAD для кодирования непосредственно в IL?
В течение долгого времени мне было любопытно программировать непосредственно на Intermediate Language в качестве академического проекта, чтобы лучше понять, что происходит «под капотом». Предоставляет ли кто-нибудь Visual Studio поддержку *IL в...
1237 просмотров
schedule 08.07.2023

Генерация IL для 2D-массивов
Я хочу сгенерировать IL для построения двумерного массива, используя пространство имен System.Reflection.Emit . Мой код С# Array 2dArr = Array.CreateInstance(typeof(int),100,100); Используя ildasm , я понял, что для приведенного выше...
575 просмотров
schedule 19.05.2023

Заменить ссылку параметра без использования ключевого слова ref (используя IL)
Я хочу заменить ссылку на объект параметра без использования ключевого слова ref. Причина, по которой я избегаю использования ref, заключается в том, чтобы сохранить вызов инициализатора коллекции, который ищет метод Add(T item) , и мне нужно,...
538 просмотров
schedule 22.09.2022

Код Reflection.Emit вызывает base. вместо этого. на логическом поле
У меня есть следующий класс A. public class A { public string Name { get; set; } } Мне нужно создать динамический прокси-сервер, используя Reflection.Emit, чтобы переопределить Equals. // This class must be generated by...
456 просмотров
schedule 17.09.2022

Есть ли способ проверить, изменило ли изменение кода двоичный файл?
Я предполагаю, что если код C# не изменится, сгенерированный IL будет одинаковым для каждой сборки. Проблема в том, что 2 EXE-файла, сгенерированные из одного и того же кода, имеют разные хеши. Я хотел бы проверить, приводит ли изменение стиля...
233 просмотров
schedule 01.11.2022

Mono.Cecil Как определить выходной параметр
Я хочу добавить новый метод через Mono.Cecil, который имеет выходной параметр, например: private static bool XXXXX(out Int32 a) Я пробовал следующие коды, чтобы добавить этот параметр TypeReference typeInt32 =...
868 просмотров
schedule 12.01.2023

Объясните мне директиву maxstack
Я скомпилировал некоторый тестовый код в режиме отладки и отразил полученную сборку с помощью ILSpy. Это IL, который я получаю: .class private auto ansi beforefieldinit ArrayListBoxAndUnBox.Program extends [mscorlib]System.Object { // Nested...
422 просмотров
schedule 14.11.2022

Измените операнд IL с помощью Mono.Cecil
Я работаю с внешней библиотекой, в которой есть ошибка. Я отследил ошибку, и это неправильное приведение, похожее на: var projectionBufferBase = startBuffer as IProjectionBuffer; Где это должно быть: var projectionBufferBase =...
1418 просмотров
schedule 17.11.2022

Ошибка в коде IL с использованием Reflection.Emit
Я пишу компилятор, который генерирует .NET IL. Я пишу это на Linux Mint, используя C#/Mono. Есть проблема с некоторым кодом, который я генерирую с помощью Reflection.Emit. Пожалуйста, извините за ужасные имена в сгенерированном коде. Ниже...
373 просмотров
schedule 25.05.2023

Почему компилятор C# переводит это сравнение != как сравнение ›?
Я случайно обнаружил, что компилятор C# превращает этот метод: static bool IsNotNull(object obj) { return obj != null; } …в этот CIL : .method private hidebysig static bool IsNotNull(object obj) cil managed { ldarg.0 // obj...
5716 просмотров
schedule 15.04.2022

ограничение неуправляемого универсального параметра в IL
Когда я компилирую следующий код: type Class1<'T when 'T : unmanaged> = class end type Class2<'T> = class end в ИЛ это выглядит так: .class auto ansi serializable nested public Class1`1<T> extends...
168 просмотров
schedule 25.12.2022

Выпустить код IL для загрузки десятичного значения
У меня есть подобный код для генерации кода IL, который загружает целые или строковые значения. Но я не знаю, как добавить к этому тип decimal . Он не поддерживается в методе Emit . Какие-нибудь решения для этого? ILGenerator ilGen =...
1188 просмотров
schedule 28.09.2022