Обычно, когда есть разница между представлением Reflector и тем, что, по моему мнению, должно быть - я использую ILDasm. Я думаю, что целочисленные проблемы могут быть решены с помощью того, что сказали Джон и Наджмеддин. Строки немного сложнее (например, значение атрибута авторского права и строка вашего регулярного выражения).
Строковые константы (вещи, заключенные в кавычки в исходном коде) хранятся в виде последовательностей байтов Unicode в двоичном файле (либо в куче больших двоичных объектов, либо в куче пользовательских строк). Вы можете точно увидеть, что находится в вашем двоичном файле, используя ILDasm, если вы сделаете следующее: 0. Загрузите свою сборку в ILDasm 1. View->Meta Info проверьте Raw:Heaps 2. View->Meta Info нажмите Show!
Если вы выполняете поиск по «авторскому праву», он, скорее всего, будет в куче больших двоичных объектов (значения атрибутов используют другую сериализацию для байтов и находятся в куче больших двоичных объектов с другими двоичными значениями), а для вашей строки RegEx она должна быть в пользовательских строках. куча.
Как только вы посмотрите на значение в ILDasm, вы увидите, что на самом деле находится в сборке... если есть разница между этим и тем, что показывает Reflector... скорее всего, Reflector делает все возможное, чтобы декодировать двоичную строку, чтобы экранировать нечитаемые символы в более читаемый формат. Поскольку существует несколько возможных кодировок/декодирований, Reflecor иногда показывает правильную строку, но просто неправильно декодирует (например, декодирование \x27 и \x22 для ' и ").
Короче говоря, ваши значения не изменились в сборке (скорее всего), просто Reflector неправильно декодирует их в исходную строку.
person
Jason Haley
schedule
22.09.2009