using FWindSoft.SystemExtensions; using System; using System.Linq; using System.Reflection; namespace FWindSoft.Revit.ExtensibleStorage { /// /// 内部应用 /// internal class InEnumUtil { /// /// 获取枚举的guid /// /// /// public static Guid GetGuid(Enum en) { var type = en.GetType(); string allPath = type.FullName + en.ToString(); return allPath.ToGuid(); } internal static SchemaItem CreateSchemaItem(Enum en) { SchemaItem item = new SchemaItem(); FieldInfo fieldInfo = en.GetType().GetField(en.ToString()); var fileNameAttribute = fieldInfo.GetCustomAttribute(); item.FileName = fileNameAttribute?.Name?? en.ToString(); var schemeNameAttribute = fieldInfo.GetCustomAttribute(); item.SchemaName = schemeNameAttribute?.Name ?? en.ToString(); var schemeGuidAttribute = fieldInfo.GetCustomAttribute(); if (schemeGuidAttribute?.Guid == null) { item.SchemaGuid = GetGuid(en); } else { item.SchemaGuid = new Guid(schemeGuidAttribute?.Guid); } return item; } } }