如何在.NET程序中解析TraceSource名称?

Mat*_*att 5 .net c# app-config tracesource

TraceSource类的MSDN文档中有一个示例,说明app.config文件如何列出TraceSource实例的信息:

http://msdn.microsoft.com/en-us/library/system.diagnostics.tracesource.aspx

但是,没有关于TraceSource值存储位置的信息...现有的TraceSource对象存储在哪里?什么时候(编辑:它们意味着配置的实例)构建?在创建TraceSource对象时,TraceSource对象如何知道如何返回命名实例(编辑:应该配置实例)而不是新实例?我可以在不使用Reflection的情况下找到现有TraceSource对象的列表吗?

Han*_*ant 2

TraceSource 类保留一个私有的源列表。但除了 TraceSource 类本身之外,任何人都无法访问它。

.config 文件部分用于配置跟踪源的侦听器。因此,当您在代码中创建 TraceSource 时,它​​会使用您在构造函数中传递的名称,并在 .config 文件中查找以查看应自动添加或删除哪些侦听器。

因此,代码创建源,.config 文件配置它。反之亦然,.config 文件无法创建源。