Лучший способ записать вызовы метода для файла в C # /. NET? - PullRequest
2 голосов
/ 14 июля 2011

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

У меня есть доступ к методам, и я могу поместить в них все, что мне нравится, - но я застрял в лучшем способе записать вызываемую сигнатуру метода и параметры, тем более что многие из них являются перегрузками и т. Д.

Есть ли что-нибудь простое, что поможет мне сериализовать / записать фактическую информацию о вызове метода? (с целью его воспроизведения, поэтому мне нужно программно загрузить информацию и вызвать ее) Возможно, что-то связано с отражением?

Примечание: я стажер в проекте, над которым я работаю, и мне, вероятно, не разрешают вводить новые сборки и т. Д. В сборку, поэтому я думаю, что аспекты, требующие библиотек, отсутствуют. (В то же время я не просто задаю вопрос. Я должен сам разобраться - это еще одна дополнительная вещь, которую я делаю во время обеденного перерыва, чтобы помочь моей основной задаче)

Ответы [ 2 ]

1 голос
/ 15 июля 2011

Было бы неплохо начать с существующего профилировщика в качестве основы - например, с http://code.google.com/p/slimtune/

Обратите внимание, что сами профилировщики довольно сложны - для .Net им требуются некоторые знания C ++ / COM - ноесли вы начнете с такой основы, как slimtune, то, надеюсь, вы сможете избежать этого основного кода и вместо этого сможете сосредоточиться на собственных требованиях к визуализации.

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

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

Также учтите, что вывам нужно, чтобы все параметры были сериализуемыми, и в зависимости от того, как вы хотите, чтобы файл использовался (программой или человеком, читаемым), вам может потребоваться реализовать довольно много стандартного кода сериализации.

Вам следуетдействительно подумайте о существующих инструментах профилирования и инструментах тестирования, а не об изобретении чего-то нового.Похоже, что тесты производительности или интеграционные тесты могут быть более ценными, чем утилита «воспроизведения».

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