2013-11-07 2 views
3

У меня есть приложение (веб-сервис).Как распечатать текущий код, который выполняет программу во время выполнения?

Я хочу напечатать подсказки/описание некоторых функций, но НЕ из БД, текстового файла или другого подготовленного контекста, НО от текущего веб-сервиса, который работает в режиме реального времени.

Я хочу только скопировать исходный код, а затем опубликовать его через веб-клиент для отображения реальной функции define в режиме реального времени/времени выполнения. Очень важно, чтобы он всегда был доступен, чтобы посмотреть свежие изменения и НЕ НЕСМОТРЯТЬСЯ в зависимости от того, что требуется для подготовленных контекстов для намеков.

Есть ли предложения?

Я знаю, что метаданные CLR легко разбираются и, возможно, есть способ сделать это для моей цели, что вы думаете?

+3

Какую проблему вы пытаетесь решить? Почему показано, что исходный код помогает конечному пользователю? –

+0

Просто предложение, чтобы вы на правильном пути; если бы это был я, во-первых, я бы просто сохранил блок кода в базе данных и автоматизировал компиляцию этого блока кода в библиотеку. Затем эта библиотека становится плагином для основного веб-сервиса, который вы можете ссылаться в режиме поздней привязки, и вы можете выполнять блоки кода из него. Webservice будет проверять новые библиотеки по требованию и подключать их и делать их доступными для внешнего интерфейса. – BeemerGuy

ответ

1

Вы не можете получить доступ к код функции в исполнении, но я сомневаюсь, что вы на самом деле нужен код самой функции, а вам нужно определение функции.

Для этого вы можете использовать класс StackTrace, который предоставляет информацию о StackTrace во время выполнения.

0

Это будущее можно реализовать только путем внедрения ваших классов и методов с атрибутами после сборки сборки. Логика:

  1. Сложение вам сборка
  2. На пост-сборки выполнить утилиту, которая:
    1. получает в качестве параметров вы сборки и путь к исходному коду
    2. находит методы и классов определений в файлы исходного кода
    3. Использование somesthing как PostSharp добавляет атрибут к каждому методу и классу вашей сборки (атрибут будет содержать метод или код класса)
  3. в службе выполнения найдет это значение атрибута и будет использовать его по мере необходимости.
Смежные вопросы