Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Перебрать все методы рефлекшном / 13 сообщений из 13, страница 1 из 1
29.04.2013, 10:26
    #38243536
tual
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перебрать все методы рефлекшном
Вообще задача стоит такая.
Написать консольное апп на .NET4CP, которое будет подгружать длл, искать override методы, и сравнивать аттрибуты этих методов и их предков.
Эта утилитка будет всунута в билд-скрипт, дабы заранее уведомить о проблемах типа этой:
http://stackoverflow.com/questions/14124874/how-do-i-implement-exception-getobjectdata-in-net-4-in-a-library-assembly-that

Вопрос в том, что мне не сильно хочется городить пачку вложенных форичей, может есть методика обхода покрасивее ?
...
Рейтинг: 0 / 0
29.04.2013, 10:35
    #38243548
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перебрать все методы рефлекшном
Пачка - это сколько циклов - 30, 100, 500?
...
Рейтинг: 0 / 0
29.04.2013, 10:40
    #38243565
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перебрать все методы рефлекшном
tualВопрос в том, что мне не сильно хочется городить пачку вложенных форичей, может есть методика обхода покрасивее?Рекурсия?
...
Рейтинг: 0 / 0
29.04.2013, 10:41
    #38243566
tual
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перебрать все методы рефлекшном
Да нет конечно, думаю со всякими ифами может будет 5-7.
Не проблема так написать, хотя основная функция будет выглядеть как этот значок >.
Просто думаю может я чего не знаю, и есть хотя бы красивые обертки и синтаксический сахар :)
...
Рейтинг: 0 / 0
29.04.2013, 10:46
    #38243578
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перебрать все методы рефлекшном
tual, выложи код со своими 7 циклами, а мы подумаем, как можно это дело соптимизировать. А так получается гадание на кофейной гуще.
...
Рейтинг: 0 / 0
29.04.2013, 10:47
    #38243581
tual
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перебрать все методы рефлекшном
А кода еще никакого нет :) Я решил заранее спросить, может есть что удобное.
...
Рейтинг: 0 / 0
29.04.2013, 10:55
    #38243590
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перебрать все методы рефлекшном
Если не кода, откуда взялись 7 циклов? Лично я пока вижу только один цикл - рекурсию.

P.S. Пиши код и не насилуй сознание форумчан :)
...
Рейтинг: 0 / 0
03.05.2013, 13:15
    #38247114
tual
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перебрать все методы рефлекшном
Добрался до этой задачи.
Сначала вот встал вопрос, как правильно приостановить рекурсивное движение по классам.
Проще говоря:
class A : B
если я рекурсией добрался до того, что А это уже класс .NET'a а не мой самописный, мне надо выйти из функции.
Как это проверить ?
...
Рейтинг: 0 / 0
03.05.2013, 13:22
    #38247118
bazile
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перебрать все методы рефлекшном
tualесли я рекурсией добрался до того, что А это уже класс .NET'a а не мой самописный, мне надо выйти из функции.
Как это проверить ?
Выбирай:
- проверить что полное имя класса начинается с System
- проверить что сборка которая содержит класс А использует PublicKeyToken от MS
- вести список своих сборок и если тип определен не в них, то останавливать работу функции
...
Рейтинг: 0 / 0
03.05.2013, 13:24
    #38247119
tual
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перебрать все методы рефлекшном
3ий точно не подходит, сборка (путь) передается параметром в этой консольное апп.
System это наверно относительно топорно, но конечно у нас никто в здравом уме не будет использовать для себя такие неймспейсы.
А по-поводу п.2 и PublicKeyToken, можно какую-нить ссылку ?
...
Рейтинг: 0 / 0
03.05.2013, 13:37
    #38247134
tual
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перебрать все методы рефлекшном
Может проще у типа проверять Type.Assembly, и если не "моя", то считать ее от MS ?
Я ж не использую никаких 3rd party здесь.
...
Рейтинг: 0 / 0
03.05.2013, 13:46
    #38247141
bazile
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перебрать все методы рефлекшном
tualМожет проще у типа проверять Type.Assembly, и если не "моя", то считать ее от MS ?
Это п.3 из моего списка, который тебя 10 минут назад не устраивал.

tualпо поводу п.2 и PublicKeyToken, можно какую-нить ссылку ?
Assembly.GetName().GetPublicKeyToken(). PublicKeyToken можно в GAC найти.
...
Рейтинг: 0 / 0
03.05.2013, 13:49
    #38247143
tual
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перебрать все методы рефлекшном
Значит я п.3 немного не так для себя сформулировал :)
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Перебрать все методы рефлекшном / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]