2016-08-06 6 views
2

У меня есть требование, когда я должен добавить возможность для своего приложения, , используя который на основе файлов конфигурационного файла будет добавлен в код. Так, например, если мое имя класса abc.cs, пользователь внесет следующую запись в конфигурационный файл.Динамическое ведение журнала на основе файла конфигурации

<entry typeName = "mynamespace.abc"> 
<LineNumbers ="1,2,3,10, 12"> 
</entry> 

Теперь для 1,2,3,10,12 номера строк, прежде чем они достигнут в потоке кода регистрационная запись будет создана в файле журнала упоминая «номер строки х достиг в типа у».

Мы хотим, чтобы это произошло во время выполнения без каких-либо изменений кода или изменений в dll, , когда требуется больше регистрации, добавьте тип и номер строки в файле конфигурации.

При прохождении через Интернет я мог бы найти, что АОП может помочь в этом, но я действительно не уверен, какие рамки или подход могут помочь в достижении этого.

С нетерпением ждем рекомендаций для них. Мое приложение использует рамки C# и .net.

+0

AOP frameworks в целом и PostSharp в частности предназначены для ввода кода (советов) в строго определенных точках, таких как ввод метода, выход метода и т. Д. Перехват произвольных строк кода на основе номера строки не поддерживается в АОП. – AlexD

ответ

0

Если этот вид ведения журнала необходим, вы можете подключить (удаленный) отладчик и настроить точки останова для ведения журнала при попадании определенных строк.

0

его можно получить с помощью считывателя PDB. смотрите: Common Compiler Infrastructure: Metadata API с помощью этого инструмента вы можете следить за расположением кода по типу.

API-интерфейс CCI метаданных позволяет приложениям эффективно анализировать или модифицировать сборки .NET, модули и отладочные файлы (PDB). CCI Метаданные поддерживают функциональные возможности API. System.Reflection и System.Reflection.Emit API, но с гораздо лучшей производительностью. Он также предоставляет дополнительные функции, которые недоступны ни в .NET API.

 Смежные вопросы

  • Нет связанных вопросов^_^