Почему в MSDN говорится, что “редко” загрузить блок путем?

Согласно документации для Системы. Блок:

Методы LoadFile и LoadFrom предоставлены для редких сценариев, в которых блок должен быть определен путем.

Они предполагают, что Вы чаще всего загружали бы блок его отображаемым именем (например, "Система. Windows. Формы, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089").

Это не имеет никакого смысла мне. Если бы Вы хотели сослаться на блок его версией и открытым ключом, то Вы добавили бы ссылку во время компиляции; Вы не загрузили бы его во времени выполнения с помощью класса блока. Типичный сценарий для загрузки блока во времени выполнения - при загрузке плагина который был бы сделан путем - так как Вы или сканируете каталог для плагинов или читаете некоторую декларацию, в которой говорится, где они расположены.

Почему в документах говорится, что, среди сценариев, где Вы динамично загружаете блок, загружая его путем, "редко"? Насколько я могу сказать, это загружает его отображаемым именем, которое было бы редко.

6
задан Mogsdad 26 February 2018 в 20:39
поделиться

3 ответа

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

Проблема в том, что вы не можете точно предсказать, что произойдет со сборками, от которых зависит подключаемый модуль. Правильно разрешить эти проблемы - пустяк. Решение, которое вам следует отдать предпочтение, - это файл .config, чтобы вы могли использовать Load () и пути зондирования были предсказуемыми.

2
ответ дан 17 December 2019 в 07:00
поделиться

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

http://msdn.microsoft.com/en-us/library/yx7xezcf%28VS.71%29.aspx

1
ответ дан 17 December 2019 в 07:00
поделиться

Я загрузил «плагины» по отображаемому имени. Почему? Ну, верите вы или нет, но сборки вообще не обязательно должны находиться на диске (или, по крайней мере, не таким образом, чтобы указывать к ним прямой путь). Это может быть невероятно полезно.

Кроме того, «необязательные» сборки, такие как сборки сериализации, обычно Assembly.Load редактируются по имени.

1
ответ дан 17 December 2019 в 07:00
поделиться
Другие вопросы по тегам:

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