Вопросы по теме 'reflection.emit'

Заменить поле свойством, используя пространство имен System.Reflection.Emit?
Я пытаюсь найти способ использовать пространство имен Reflection.Emit для удаления поля и замены его собственной реализацией свойства. Я читал о том, как генерировать код с помощью Emit, а также писать и компилировать код IL напрямую, но я не видел...
1308 просмотров
schedule 06.08.2022

Reflection.Emit против CodeDOM
Какие плюсы и минусы использования библиотеки Reflection.Emit по сравнению с CodeDOM для динамической генерации кода во время выполнения? Я пытаюсь создать некоторые (относительно сложные) динамические классы в системе на основе метаданных,...
14353 просмотров

Использование Reflection.Emit для создания блока using (x) {}?
Я пытаюсь использовать Reflection.Emit в С# для создания блока using (x) { ... } . В тот момент, когда я нахожусь в коде, мне нужно взять текущую вершину стека, которая является объектом, который реализует IDisposable, сохранить его в локальной...
992 просмотров

Клонирование/копирование получить тело аксессора в новый тип
Я создаю новый тип в динамической сборке из существующего типа, но с включением только выбранных свойств: public class EmitTest { public Type Create(Type prototype, Type dynamicBaseType, List<string> includedPropertyList) {...
1297 просмотров
schedule 17.05.2023

TypeBuilder с DataContract и DataMembers
Я создаю динамический тип на лету с атрибутом DataContract и DataMembers. Я проверил, что тип генерируется правильно с атрибутами DataContract и DataMember, используя отражение сгенерированного типа. Затем я на лету генерирую тип ServiceContract,...
447 просмотров

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

Снижение производительности Reflection.Emit
Я рассматриваю возможное решение проблемы, над которой я работаю (приложение .NET 3.5 WinForms). В нашем приложении у нас есть много методов (C#), аргументы которых вводятся пользователем приложения. Примером может быть что-то вроде: public...
1513 просмотров

Передача объектов класса через разные версии сборки
Сценарий выглядит так - У меня есть сборка с надписью «MyAssembly». В этой сборке определен интерфейс «IMyInterface». В той же сборке у меня есть один класс (MyClass) с методом, определенным в нем как: public void MyMethod (объект...
2541 просмотров

Код 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

Получить динамические элементы и SetValue из объекта взаимодействия
У меня есть этот объект взаимодействия, который появляется как System.__ComObject, и я хочу установить значения, используя имя переменной: SetValue(fieldname) = fieldvalue; Мне также нужно проверить динамические элементы, чтобы увидеть, что...
330 просмотров

Внедрить byte[], экспортированный из MethodInfo.GetMethodBody()
Мне было интересно, возможно ли вставить код byte[], который ранее был экспортирован из метода через GetMethodBody(), обратно, что означает, что он снова может быть исполняемым кодом. Если бы кто-то мог написать довольно простой пример или...
875 просмотров
schedule 14.04.2022

Можно ли создать метод в существующем типе во время выполнения?
Возможный дубликат: Можно ли добавить метод в СУЩЕСТВУЮЩИЙ класс во время выполнения? почему или почему нет? Мой вопрос довольно тривиален, но ответа может и не быть ;) Можно ли создать новый метод в существующем типе во время...
87 просмотров
schedule 22.12.2022

Почему этот DynamicMethod (ldarg.1, newobj, ret) вызывает исключение VerificationException?
У меня есть этот метод, который оборачивает конструктор в динамический фабричный метод: static Func<TArg1, TResult> ToFactoryMethod<TArg1, TResult>(this ConstructorInfo ctor) where TResult : class { var factoryMethod = new...
893 просмотров

Как создать событие во время выполнения
Я хочу сгенерировать (испустить) класс, который реализует интерфейс во время выполнения с помощью С#. Мне удалось сгенерировать методы и свойства, но мне не удалось сгенерировать событие. Вот код, который я хочу выдать: Пространство имен:...
1883 просмотров
schedule 14.03.2023

Низкая производительность DynamicMethod
Я попытался улучшить производительность некоторого фрагмента кода в своем проекте, сгенерировав IL специально для этой задачи. В настоящее время эта задача выполняется путем выполнения цикла for над элементами массива и запуска различных методов...
1398 просмотров
schedule 21.10.2023

Сгенерированный MSIL выдает ошибку Common Language Runtime.
Я пытаюсь написать динамический метод, который делает клон словаря ‹,>. Код, представленный ниже, выдает исключение: Unhandled Exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. --->...
1957 просмотров
schedule 02.05.2022

Как создать метод с предварительно загруженной локальной переменной MethodInfo?
Я хотел бы создать метод с переменной, что я могу сделать. Но я хотел бы сохранить в этой переменной объект MethodInfo, который является ссылкой на другой (не испускаемый) метод. Я мог бы испустить коды операций для вызова typeof (someClass)...
993 просмотров
schedule 08.04.2022

Почему реализация интерфейса в Emit с явной перегрузкой ведет себя по-разному для общедоступных и непубличных?
Я давно работаю с Reflection.Emit, но на этот раз это не имеет смысла ... Где-то в моей программе я реализую интерфейсы с помощью emit. Например.: typeBuilder.AddInterfaceImplementation(intf); Поскольку я реализую несколько интерфейсов, а...
1108 просмотров
schedule 22.12.2022

Получение методов интерфейса из динамически загружаемого класса в .NET
У меня есть библиотека .dll, которую я пишу, которая взаимодействует с проприетарной сборкой COM. Моя цель - опубликовать свою работу в Интернете после ее создания, однако мне нужно удалить сборку COM в качестве ссылки на проект, чтобы избежать...
1213 просмотров

Выброс отражения: как преобразовать экземпляр атрибута в CustomAttributeBuilder или CustomAttributeData
Я создал класс генератора, который создает прокси-класс на основе интерфейса, который реализует интерфейс. См. мой пост о Создание класса прокси на основе интерфейса без его реализации . Я знаком с...
4556 просмотров
schedule 11.01.2023