public override void Set (string name, string value)
{
if (name == null)
throw new ArgumentNullException ("name");
if (internallyCreated && IsRestricted (name))
throw new ArgumentException ("restricted header");
if (!IsHeaderName (name))
throw new ArgumentException ("invalid header name");
if (value == null)
value = String.Empty;
else
value = value.Trim ();
if (!IsHeaderValue (value))
throw new ArgumentException ("invalid header value");
base.Set (name, value);
}