Как получить скомпилированную версию страницы aspx для размышления - PullRequest
0 голосов
/ 04 августа 2009

Учитывая путь aspx-страницы на моем сайте, который был предварительно скомпилирован, как можно получить путь к скомпилированной версии (dll или другой) со второй страницы на моем сайте, чтобы я мог изучить ее свойства, методы и классы с помощью отражения

Или какой-то другой способ создания списков методов / свойств из страниц aspx?

Ответы [ 4 ]

1 голос
/ 04 августа 2009

То, что вы ищете, должно быть в папке bin вашего сервера. Вы не можете получить доступ к папке bin через браузер из-за проблем с безопасностью. Таким образом, вам нужно будет открыть папку ISS вашего сервера либо с FTP-клиента, либо с сервера локально Затем вы можете использовать отражатель против него, как только вы загрузите его.

0 голосов
/ 14 июля 2015

ASP.Net компилирует страницы по требованию, что в основном означает, что вам нужно использовать BuildManager, чтобы убедиться, что они есть. По сути, он проверяет, есть ли он там и обновлен ли он, а если нет, то создаст сборку.

var pg = System.Web.Compilation.BuildManager.GetCompiledType([relative path]);

Если вы уже на странице, это, конечно, просто:

var pg = this;

Другая информация здесь

Все, что использует Assembly.Location для динамической загрузки сборок по этому пути, является некорректным и может даже сломать ваше приложение. Если вы это сделаете, вы рискуете загрузить старую сборку - и когда работник ASP.NET выяснит, что он должен перекомпилировать эту вещь, загрузка новой сборки может завершиться неудачей из-за конфликтов имен. Вы также смотрите на старый код. Короче говоря: не делай этого.

0 голосов
/ 20 октября 2009

Возможно, вы могли бы использовать это:

System.Web.Compilation.BuildManager.GetCompiledType(Me.Request.Url.AbsolutePath)
0 голосов
/ 04 августа 2009

Я считаю, что они должны быть в одной сборке. Вы можете проверить это.

Просто поместите следующий фрагмент вверху страницы aspx:

<%=this.GetType().Assembly.Location %>

Это даст вам каталог DLL. Кроме того, вы можете сделать это:

<%=typeof(MyWebsite.TargetPageType).Assembly.Location %>

замена типа страницы, которую вы хотите изучить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...