public T GetProperty <T>(String Name, T Default) { if (MetaData != null && MetaData.Has(Name)) { return(MetaData.GetData <T>(Name, Default)); } else if (ResourceType.HasValue(out var res)) { var prop = typeof(ResourceType).GetField(Name); if (prop != null && prop.FieldType == typeof(T)) { return((T)prop.GetValue(res)); } else { return(Default); } } else { return(Default); } }