コード例 #1
0
        public static List <ClassTemplateSpecialization> GetSpecializationsToGenerate(
            this Class classTemplate)
        {
            if (classTemplate.HasDependentValueFieldInLayout())
            {
                return(classTemplate.Specializations);
            }

            var specializations = new List <ClassTemplateSpecialization>();
            var specialization  = classTemplate.Specializations.FirstOrDefault(s => !s.Ignore);

            if (specialization == null)
            {
                specializations.Add(classTemplate.Specializations[0]);
            }
            else
            {
                specializations.Add(specialization);
            }
            return(specializations);
        }
コード例 #2
0
        public static IEnumerable <Class> GetSpecializedClassesToGenerate(
            this Class dependentClass)
        {
            IEnumerable <Class> specializedClasses = GetSpecializedClassesOf(dependentClass);

            if (!specializedClasses.Any() || dependentClass.HasDependentValueFieldInLayout())
            {
                return(specializedClasses);
            }

            var specializations = new List <Class>();
            var specialization  = specializedClasses.FirstOrDefault(s => s.IsGenerated);

            if (specialization == null)
            {
                specializations.Add(specializedClasses.First());
            }
            else
            {
                specializations.Add(specialization);
            }
            return(specializations);
        }