Декомпиляция .NET-сборок показывает только show null; [Дубликат]

Вы можете использовать этот метод:

  String.prototype.jsonToDate = function () {try {var date;  eval (("date = new" + this) .replace (/ \ // g, ''));  Дата возврата;  } catch (e) {return new Date (0);  }};   
22
задан Martin Prikryl 9 April 2014 в 08:00
поделиться

1 ответ

Версия .NET 4.0 сделала большое изменение в способе сборки ссылок на базу. Ранее эталонная сборка была простой копией сборки времени выполнения, той, которая хранится в GAC. Это, однако, вызвало некоторые болезненные проблемы. Примечательна перегрузка WaitHandle.WaitOne(int), она была добавлена ​​в обновление .NET 2.0 с пакетом обновления 2 (ака .NET 3.5). Программисты использовали его, не заметив, что это добавленный метод , номер версии сборки mscorlib все еще был 2.0.0.0. Но затем они обнаружили, что их программа завершилась неудачей при запуске на неподдерживаемой версии .NET 2.0. Очень неприятный kaboom, MissingMethodException без подсказки, почему такой общий метод может отсутствовать.

Чтобы предотвратить этот разрыв, сборки ссылок .NET 4.0 сохраняются отдельно, в разделе «% programfiles%\reference Assemblies ", как вы узнали. И они - специальные сборки, они содержат только метаданные со всеми ИЛ. Вот почему сборка намного меньше.

Microsoft теперь может улучшить код .NET 4 и добавить общедоступные классы и методы, не вызывая такого рода поломки. И сделали это обильно, обновления 4.01, 4.02 и 4.03 отправлены с момента выпуска оригинала 4.0.

Причина, по которой у вас возникают проблемы с классом DataContractSerializerSetting, легко объясняется, она просто не появляется в контрольной сборке. Он добавлен, вероятно, в одном из этих дополнительных обновлений. И вы не должны пытаться, ваша программа будет ломаться на машине, у которой нет обновления. Вы должны подождать до .NET 4.5, версии, которая добавила его в ссылочную сборку. Вы можете вызвать DLL Hell, если хотите.

49
ответ дан Hans Passant 16 August 2018 в 14:25
поделиться
  • 1
    Спасибо @Hans, ваш ответ очень полезен. Однако теперь меня беспокоит этот вопрос и ответ, который мне дал. Не могли бы вы высказать свое мнение о том, как получить промежуточный выпуск 4.0.2 и т. Д. На клиентских ПК? – Steve 14 March 2012 в 14:47
  • 2
    До тех пор, пока вы рассматриваете использование бета-версии движка dbase, вы также можете запустить целую болтовню, а также использовать бета-версию .NET 4.5. Надеюсь, ваш клиент тоже захочет принять участие. – Hans Passant 14 March 2012 в 14:54
  • 3
    Спасибо @HansPassant за ваш подробный ответ :) – Sergey Litvinov 14 March 2012 в 18:09
  • 4
    @HansPassant Как вы знаете так много, и особенно. все это? Я подозреваю, что такая информация должна быть предана очень элитарной группе. Как мне узнать об этом? Как стать таким же хорошим программистом, как и вы? – Water Cooler v2 26 February 2015 в 10:42
  • 5
    Никогда не предполагайте ничего, всегда спрашивайте «почему», продолжайте копать, пока не узнаете. Держите это на 30 лет. – Hans Passant 26 February 2015 в 12:01
Другие вопросы по тегам:

Похожие вопросы: