title: Trace.Write(string, string) and Trace.WriteLine(string, string) don't filter by category
body: <p>When using a Trace.Listener can anyone tell me why the </p>
  
  <pre><code>Trace.Write(string message, string category) 
  </code></pre>
  
  <p>doesn't pass the category string to the TraceFilter when the method </p>
  
  <pre><code>Trace.Write(object o, string category)
  </code></pre>
  
  <p>does pass the category string to the ShouldTrace method. Below are decompiles of both methods from Reflector. Just wondering why the .NET team would do something on one method and not on another method.</p>
  
  <pre><code>public virtual void Write(object o, string category)
  {
      if ((this.Filter == null) || 
   this.Filter.ShouldTrace(null, "", TraceEventType.Verbose, 0, category, null, o))
      {
          if (category == null)
          {
              this.Write(o);
          }
          else
          {
              this.Write((o == null) ? "" : o.ToString(), category);
          }
      }
  }
  </code></pre>
  
  <p>and then the string method.</p>
  
  <pre><code>public virtual void Write(string message, string category)
  {
      if ((this.Filter == null) || 
           this.Filter.ShouldTrace(null, "", TraceEventType.Verbose, 0, message))
      {
          if (category == null)
          {
              this.Write(message);
          }
          else
          {
              this.Write(category + ": " + ((message == null) ? string.Empty : message));
          }
      }
  }
  </code></pre>