protected void Load(StructureItem assemblyItem, Type type, IList <StructureItem> items) { Type baseType = type.BaseType; if (baseType == null || baseType == typeof(object) || !baseType.IsClass) { return; } if (!baseType.IsGenericType || baseType.GetGenericTypeDefinition() != XtraLocalizerType) { return; } var arguments = baseType.GetGenericArguments(); if (arguments.Length == 1 && arguments[0].IsEnum) { var typeItem = new StructureItem(arguments[0], assemblyItem.ID); items.Add(typeItem); Array values = Enum.GetValues(arguments[0]); for (int i = 0; i < values.Length; i++) { Enum value = (Enum)values.GetValue(i); items.Add(new StructureItem(value, type, typeItem.ID)); } } }
protected void Load(Assembly assembly, IList <StructureItem> items) { if (assembly == null) { return; } var assemblyItem = new StructureItem(assembly.GetName().Name, -1); items.Add(assemblyItem); Type[] types = GetTypes(assembly); for (int i = 0; i < types.Length; i++) { Load(assemblyItem, types[i], items); } }