Любой способ сделать GetTypes () менее хрупким - PullRequest
0 голосов
/ 24 мая 2010

Я перебираю все типы в GAC, GAC_32 и GAC_MSIL в поисках конкретных типов, чтобы в основном соответствовать тем, которые используют выражения в моем исходном коде, поэтому, когда я компилирую исходный код. Я точно буду знать, какую сборку предоставить.

Я получаю все имена файлов из каждого из этих каталогов и применяю GetTypes к каждому сборка в свою очередь и сравнение возвращаемых типов с моим списком использования. Но проблема у меня есть то, что GetTypes () выдает исключение, когда он не может загрузить типы из загруженной сборки.

Есть ли у них способ сделать GetTypes () менее хрупким. Например, при синтаксическом анализе этой сборки на моем компьютере {blbmmc, Версия = 6.0.0.0, Culture = нейтральный, PublicKeyToken = 31bf3856ad364e35} он вылетает.

Любые предложения приветствуются.

Я знаю, что это довольно длительный процесс, но я полагаю, что в конечном итоге я буду использовать подмножество общих сборок для поиска или, возможно, кешировать список типов -> имя dll сборки при запуске программы.

Спасибо.

1 Ответ

0 голосов
/ 25 мая 2010

Продолжая свой оригинальный комментарий, я бы рекомендовал иметь список сборок, которые вам действительно нужны, а не искать их.

Кроме того, в контексте генерации кода я не знаю масштаб вашей задачи, но я обнаружил, что довольно удобно использовать CodeDOM для моих проектов, когда мне нужны классы, сгенерированные из определенной XML-схемы.

Но для таких задач, как «создать метод на лету» Деревья выражений просто великолепны. (Особенно в .NET 4.0)

...