public List <Type> GetServiceTypes(Type itself)
        {
            var serviceTypes = ServiceTypes == null ? new List <Type>() : ServiceTypes.AsEnumerable().ToList();

            if (IncludeSelf)
            {
                serviceTypes.AddIfNotContains(itself);
            }

            return(serviceTypes);
        }