private static string BuildDescription(InstanceProducer diagnosedProducer,
      InstanceProducer[] conflictingProducers)
 {
     return string.Format(CultureInfo.InvariantCulture,
         "The registration for {0} ({1}) maps to the same implementation ({2}) as the {3} for {4} " +
         "{5}, but the {3} {6} to a different lifestyle. This will cause each registration to " +
         "resolve to a different instance.",
         diagnosedProducer.ServiceType.ToFriendlyName(),
         diagnosedProducer.Registration.Lifestyle.Name,
         diagnosedProducer.Registration.ImplementationType.ToFriendlyName(),
         conflictingProducers.Length == 1 ? "registration" : "registrations",
         conflictingProducers.Select(ToFriendlyNameWithLifestyle).ToCommaSeparatedText(),
         conflictingProducers.Length == 1 ? "does" : "do",
         conflictingProducers.Length == 1 ? "maps" : "map");
 }