ConsoleTraceListener(Boolean) - 传入一个字符串

ConsoleTraceListener(Boolean) - Passing in a string

我使用这个 XML:

设置了一个 TraceListener
<add name="RuntimeDeploymentConsoleListener"
      type="System.Diagnostics.ConsoleTraceListener"
      initializeData="C:\Users\Administrator\Desktop\TraceSourceLogs.log">
</add>

然后我意识到 initializeData 属性是指定 class 的 string passed to the constructor。 但是 ConsoleTraceListener 的构造函数采用 Boolean。那么,当它试图将该字符串转换为布尔值时,为什么它不会在运行时抛出异常?

web.config 中的类型强制是松散的。它可能正在寻找 True 或 False,但没有找到与其相等的值,它假设相反。

很可能它正在使用 Convert.ToBoolean,它将尝试转换许多值而不抛出异常:

参考: https://msdn.microsoft.com/en-us/library/86hw82a3(v=vs.110).aspx