public ContractDescription (string name, string ns)
{
if (name == null)
throw new ArgumentNullException ("name");
if (name.Length == 0)
throw new ArgumentOutOfRangeException ("ContractDescription's Name must be a non-empty string.");
if (ns == null)
ns = "http://tempuri.org/";
this.name = name;
this.ns = ns;
behaviors = new KeyedByTypeCollection<IContractBehavior> ();
operations = new OperationDescriptionCollection ();
}