Описание тега reflection.emit
Пространство имен System.Reflection.Emit содержит классы, которые позволяют компилятору или инструменту генерировать метаданные и промежуточный язык Microsoft (MSIL) и, при необходимости, создавать PE-файл на диске.
1
ответ
Reflection.Emit Построение графа сущностей
Я потратил некоторое время, пытаясь построить граф сущностей с помощью Reflection.Emit. Создать сборку с новым плоским типом (классом), создать его экземпляр и использовать с отражением легко и работает отлично. Но когда дело доходит до построения с…
12 ноя '13 в 14:38
1
ответ
Создайте одноразовый метод во время выполнения
Моя программа создает в любое время новые методы (используя MethodBuilder с массивом байтов \IL), что он выполняет их один раз и отбрасывает ссылку на них. Я обнаружил, что на самом деле они не затронуты GC. Есть ли способ позволить GC собрать их ил…
21 июн '14 в 20:18
1
ответ
Использование делегата /DLR Lambdas для переопределения методов экземпляра?
Стремясь выучить F# и.Net, я поиграл с DLR, который должен быть выпущен. С этой целью я поигрался с рефлексией, пытаясь реализовать систему базовых типов, которая прекрасно интегрируется с clr. Хотя я могу создать простой тип, расширяющий Object, я …
20 май '09 в 15:18
1
ответ
Выполнить метод для постоянной сборки из динамической сборки
Можно ли вызвать метод, который находится на "нормальной" сборке из динамически созданной сборки? Например, сборка B динамически создается (через Emit) из сборки A, а сборка B должна вызывать статический метод, определенный в сборке A. public interf…
10 окт '14 в 16:46
1
ответ
Добавить атрибут для свойства созданного во время выполнения типа, используя отражение
Я пытаюсь создать тип во время выполнения, придерживаясь StuckAttribute атрибут каждого свойства, которое я добавляю в этот тип. Тип Builder: private TypeBuilder getTypeBuilder() { var typeSignature = "IDynamicFlattenedType"; var an = new AssemblyNa…
30 окт '15 в 18:11
1
ответ
Common Language Runtime обнаружил недопустимую программу - ILGenerator
В основном я пытаюсь десериализовать данные, которые находятся внутри байтового массива, в объекты. Я пытаюсь использовать метод GetString кодировки UTF8 для чтения строки. Вот часть моего кода: var mm = new DynamicMethod("get_value", typeof(object)…
03 янв '14 в 03:15
1
ответ
Вызов метода на поле
Мне просто любопытно, как бы я вызвал метод в поле, используя Emit, У меня этот класс сгенерирован public class AClass : IDynamicProxyTestInterface { private DynamicProxy<IDynamicProxyTestInterface> proxy; public AClass(DynamicProxy<IDynami…
16 фев '13 в 07:22
1
ответ
Что может вызвать это ExecutionEngineException?
Я пытаюсь использовать Reflection.Emit для генерации класса-оболочки в динамической сборке. Автоматическое создание обертки является частью новой библиотеки с открытым исходным кодом, которую я пишу под названием "GoInterfaces". Класс-обертка реализ…
15 июн '10 в 00:23
1
ответ
Получение конструктора по умолчанию для обобщенного абстрактного класса
У меня есть общий абстрактный базовый класс, из которого я хотел бы получить производный от динамического типа, созданного с помощью mirror.emit. Также мне нужно настроить конструктор по умолчанию для производного класса, чтобы инициализировать неко…
20 авг '10 в 07:11
1
ответ
VB > Reflection.Emit: наследовать от суперкласса и переопределить метод
Я сам пытался написать этот очень простой код, но он мне немного сложен (Reflection.Emit очень нов для меня), так что я здесь. Что мне нужно, так это целый класс, который наследует от суперкласса и переопределяет метод - все написано для того, чтобы…
19 авг '13 в 07:14
0
ответов
Очиститель настроек (или других свойств) прокси класса
Существует ли распространенная практика реализации для сокращения кода (особенно дублирующихся строк) здесь? public class Settings { private static settings = Properties.Settings.Default; public string MRUList { get { return settings["MRUList"]; } s…
22 дек '14 в 19:01
2
ответа
Как извлечь код класса IL из загруженной сборки и сохранить на диск?
Как мне извлечь код IL для классов, которые генерируются во время выполнения с помощью отражения, чтобы я мог сохранить его на диск? Если вообще возможно. У меня нет контроля над кодом, который генерирует эти классы. В конце концов, я хотел бы загру…
02 апр '11 в 15:19
0
ответов
CIL инструкции неожиданное возвращаемое значение
Я пытаюсь создать il-инструкции вручную в учебных целях, но столкнулся с небольшой проблемой. У меня есть простая структура с интерфейсом: "MyInterface" с одним методом: "Handle", класс "AddTwo", который реализует "MyInterface" и класс "Program" с м…
02 июн '15 в 22:20
2
ответа
В C# как вызвать статический метод с помощью emit
Я пытаюсь использовать Emit для генерации кода сопоставления (сопоставление свойств из одного объекта в другой). У меня это работает, если два типа совпадают (исходный и целевой), но я не могу заставить его работать в случае, когда типы не совпадают…
19 апр '11 в 22:35
1
ответ
Почему я не могу войти в инструкцию Call во время отладки / разборки?
Разборка выглядит так: methShort( ref x, ref y ); 000007FF00163F67 lea r8,[rsp+34h] 000007FF00163F6C lea rdx,[rsp+30h] 000007FF00163F71 mov rcx,qword ptr [rsp+20h] 000007FF00163F76 mov rcx,qword ptr [rcx+8] 000007FF00163F7A mov rax,qword ptr [rsp+20…
30 апр '15 в 16:40
2
ответа
Экземпляры, использующие отражение
У меня есть класс с 2 свойствами. Один является List<double> а другой является Queue<double>, У меня есть только Type информация во время выполнения. Мне нужно создать экземпляр и заполнить оба свойства. Есть ли общий способ сделать это?…
09 дек '18 в 22:21
1
ответ
TargetException: объект не соответствует типу цели
Я получаю эту странную ошибку, когда я пытаюсь этот код: class SomeClass { public decimal ClientCode { get; set; } public DateTime Date { get; set; } public override int GetHashCode() { int sum = 0; foreach (var p in GetType().GetProperties()) { var…
14 фев '14 в 12:50
1
ответ
Как перевести создание нового объекта?
Не так давно я начал учиться использовать пространство имен System.Reflection.Emit. Я сейчас пытаюсь перевести этот код для использования ILGenerator: MyClass c = new MyClass("MyClass"); c.Do(":D"); Для этого куска кода у меня есть три вопроса: как …
27 мар '12 в 16:12
1
ответ
Reflection.Emit.ILGenerator::Emit, вызов метода из сторонней библиотеки.net
Я пытаюсь создать простой компилятор.net для образовательных целей. После разбора, сканирования и сборки AST я генерирую сборку.net используя Reflection.Emit.ILGenerator, Вот мой пример кода для генерации сборки: static void Main(string[] args) { st…
07 май '13 в 13:37
1
ответ
Я сделал ошибку в этом IL, которого я не вижу?
Я работаю над компилятором, используя System.Reflection.Emit, и я получаю ошибки ограничения JIT, я не могу понять. Проблема возникает в моей реализации дескрипторов функций. Т.е. генерация кода для function foo() { } f = foo; f(); Из-за не зависящи…
04 фев '13 в 16:02