Tag: reflection

Как я могу получить значения параметров вызывающего метода?

Вопрос Я пишу код, который должен иметь возможность получать значения параметров из метода, вызываемого в class. Я знаю, как добраться до массива ParameterInfo [], но я не знаю, как получить значения. Возможно ли это? Если это так, я думаю, что это имеет какое-то отношение к использованию свойства MethodBody объекта MethodInfo, что позволяет вам проверять stream […]

Найти методы, которые имеют настраиваемый атрибут с использованием отражения

У меня есть пользовательский атрибут: public class MenuItemAttribute : Attribute { } и class с несколькими методами: public class HelloWorld { [MenuItemAttribute] public void Shout() { } [MenuItemAttribute] public void Cry() { } public void RunLikeHell() { } } Как я могу получить только те методы, которые украшены пользовательским атрибутом? Пока у меня есть это: […]

Использование IsAssignableFrom и ключевое слово «is» в C #

При попытке изучить Unity я продолжаю видеть следующий код для переопределения GetControllerInstance в MVC: if(!typeof(IController).IsAssignableFrom(controllerType)) { … } это кажется мне довольно запутанным способом в основном писать if(controllerType is IController) { … } Я понимаю, что есть тонкие различия между is и IsAssignableFrom , то есть IsAssignableFrom не включает преобразования конверсий, но я изо всех […]

C ++ итерации во nested поле struct с boost fusion adapt_struct

В двух ответах stackoverflow предлагается подход с использованием fusion adapt_struct для итерации по полям структуры. Подход выглядит неплохо. Однако как вы перебираете поле, которое является структурой? Следуя предыдущим ответам, я придумал код ниже. Проблема заключается в условии «#if 0», код не компилируется. В качестве альтернативного решения я создал функцию «decode ()», чтобы принять указатель void […]

Является ли использование динамической считается плохой практикой?

В C # кто-то может сделать: MyClass myInstance = new MyClass(); dynamic mydynamicInstance = myInstance; Затем вызовите метод, например: //This method takes a MyClass argument and does something. Caller.InvokeMethod(myDynamicInstance); Теперь это приведет к определению типа myInstance во время выполнения, и, если это действительно так, Caller.InvokeMethod будет вызван нормально. Теперь, мой вопрос заключается в том, что […]

Улучшение отражения производительности, какие альтернативы мне следует учитывать

Мне нужно динамически устанавливать значения на связке или свойствах объекта, называть его объектом передачи. Будет довольно много таких объектов передачи, которые будут созданы и будут установлены в течение короткого промежутка времени. Я хочу избежать использования рефлексии, есть ли альтернатива? Если бы были примеры реализации, на которые я мог смотреть? благодаря

Как вы можете перебирать свойства classа?

Есть ли способ в c # перебрать свойства classа? В основном у меня есть class, который содержит большое количество свойств (он в основном содержит результаты большого запроса к базе данных). Мне нужно вывести эти результаты в виде файла CSV, поэтому нужно добавить каждое значение в строку. Очевидный способ вручную добавить каждое значение в строку, но […]

Как найти все типы в сборке, которые наследуют от определенного типа C #

Как вы получаете коллекцию всех типов, которые наследуются от определенного другого типа?

Через 3 минуты Что такое reflection?

Многие списки ответов .Net ( включая хорошие ) содержат вопрос: «Что такое reflection?». Недавно мне было предложено ответить на этот вопрос в контексте 5 вопросов, технических испытаний, которые должны были быть завершены за 15 минут на листе пустой бумаги, переданной мне в кафетерии. Мой ответ шел по строкам «Отражение» позволяет вам найти методы, свойства и […]

Когда вы используете reflection? Модели / анти-паттерны

Я понимаю API отражения (в c #), но я не уверен, в какой ситуации я его буду использовать. Каковы некоторые шаблоны – анти-шаблоны для использования отражения?

Давайте будем гением компьютера.