protected override ServiceDescription CreateDescription( out IDictionary <string, ContractDescription> implementedContracts) { contracts = new Dictionary <string, ContractDescription> (); implementedContracts = contracts; ServiceDescription sd; IEnumerable <ContractDescription> contractDescriptions = GetServiceContractDescriptions(); foreach (ContractDescription cd in contractDescriptions) { contracts.Add(cd.ContractType.FullName, cd); } if (SingletonInstance != null) { sd = ServiceDescription.GetService(instance); } else { sd = ServiceDescription.GetService(service_type); } ServiceBehaviorAttribute sba = PopulateAttribute <ServiceBehaviorAttribute> (); if (SingletonInstance != null) { sba.SetWellKnownSingleton(SingletonInstance); } sd.Behaviors.Add(sba); return(sd); }