|
Перебрать все методы рефлекшном
|
|||
---|---|---|---|
#18+
Вообще задача стоит такая. Написать консольное апп на .NET4CP, которое будет подгружать длл, искать override методы, и сравнивать аттрибуты этих методов и их предков. Эта утилитка будет всунута в билд-скрипт, дабы заранее уведомить о проблемах типа этой: http://stackoverflow.com/questions/14124874/how-do-i-implement-exception-getobjectdata-in-net-4-in-a-library-assembly-that Вопрос в том, что мне не сильно хочется городить пачку вложенных форичей, может есть методика обхода покрасивее ? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2013, 10:26 |
|
Перебрать все методы рефлекшном
|
|||
---|---|---|---|
#18+
Пачка - это сколько циклов - 30, 100, 500? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2013, 10:35 |
|
Перебрать все методы рефлекшном
|
|||
---|---|---|---|
#18+
tualВопрос в том, что мне не сильно хочется городить пачку вложенных форичей, может есть методика обхода покрасивее?Рекурсия? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2013, 10:40 |
|
Перебрать все методы рефлекшном
|
|||
---|---|---|---|
#18+
Да нет конечно, думаю со всякими ифами может будет 5-7. Не проблема так написать, хотя основная функция будет выглядеть как этот значок >. Просто думаю может я чего не знаю, и есть хотя бы красивые обертки и синтаксический сахар :) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2013, 10:41 |
|
Перебрать все методы рефлекшном
|
|||
---|---|---|---|
#18+
tual, выложи код со своими 7 циклами, а мы подумаем, как можно это дело соптимизировать. А так получается гадание на кофейной гуще. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2013, 10:46 |
|
Перебрать все методы рефлекшном
|
|||
---|---|---|---|
#18+
А кода еще никакого нет :) Я решил заранее спросить, может есть что удобное. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2013, 10:47 |
|
Перебрать все методы рефлекшном
|
|||
---|---|---|---|
#18+
Если не кода, откуда взялись 7 циклов? Лично я пока вижу только один цикл - рекурсию. P.S. Пиши код и не насилуй сознание форумчан :) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2013, 10:55 |
|
Перебрать все методы рефлекшном
|
|||
---|---|---|---|
#18+
Добрался до этой задачи. Сначала вот встал вопрос, как правильно приостановить рекурсивное движение по классам. Проще говоря: class A : B если я рекурсией добрался до того, что А это уже класс .NET'a а не мой самописный, мне надо выйти из функции. Как это проверить ? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.05.2013, 13:15 |
|
Перебрать все методы рефлекшном
|
|||
---|---|---|---|
#18+
tualесли я рекурсией добрался до того, что А это уже класс .NET'a а не мой самописный, мне надо выйти из функции. Как это проверить ? Выбирай: - проверить что полное имя класса начинается с System - проверить что сборка которая содержит класс А использует PublicKeyToken от MS - вести список своих сборок и если тип определен не в них, то останавливать работу функции ... |
|||
:
Нравится:
Не нравится:
|
|||
03.05.2013, 13:22 |
|
Перебрать все методы рефлекшном
|
|||
---|---|---|---|
#18+
3ий точно не подходит, сборка (путь) передается параметром в этой консольное апп. System это наверно относительно топорно, но конечно у нас никто в здравом уме не будет использовать для себя такие неймспейсы. А по-поводу п.2 и PublicKeyToken, можно какую-нить ссылку ? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.05.2013, 13:24 |
|
Перебрать все методы рефлекшном
|
|||
---|---|---|---|
#18+
Может проще у типа проверять Type.Assembly, и если не "моя", то считать ее от MS ? Я ж не использую никаких 3rd party здесь. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.05.2013, 13:37 |
|
Перебрать все методы рефлекшном
|
|||
---|---|---|---|
#18+
tualМожет проще у типа проверять Type.Assembly, и если не "моя", то считать ее от MS ? Это п.3 из моего списка, который тебя 10 минут назад не устраивал. tualпо поводу п.2 и PublicKeyToken, можно какую-нить ссылку ? Assembly.GetName().GetPublicKeyToken(). PublicKeyToken можно в GAC найти. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.05.2013, 13:46 |
|
|
start [/forum/topic.php?fid=20&msg=38247114&tid=1404749]: |
0ms |
get settings: |
10ms |
get forum list: |
11ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
180ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 276ms |
0 / 0 |