Невозможно сделать это с помощью отражения, если вы не украсили свои классы каким-либо образом, чтобы указать их исходный файл. Для этого вам нужно написать простой атрибут, назовем его SourceFileAttribute
, а затем вам понадобится какой-то способ убедиться, что ваше оформление было актуальным для каждого класса. Вы можете сделать это полностью вручную, использовать контроль исходного кода для заполнения части имени файла или использовать инструмент, который сделает это во время компиляции, который вставит как атрибут, так и имя файла.
Когда у вас есть этот атрибут, вы можете искать его, используя отражение для выполнения ваших проверок.
Альтернативой может быть использование информации PDB, хотя я ожидаю, что она будет медленнее. Ссылка, приведенная в Ответ Одеда , представляет собой разумный компромисс, чтобы избежать интерпретации PDB во время выполнения (хотя я не согласен с предложением не развертывать PDB в порядке надлежащей процедуры).