public IEnumValueDescriptor Value <T>(T value) { EnumValueDescriptor descriptor = Values.FirstOrDefault(t => t.Definition.Value is not null && t.Definition.Value.Equals(value)); if (descriptor is not null) { return(descriptor); } descriptor = EnumValueDescriptor.New(Context, value); Values.Add(descriptor); return(descriptor); }
protected void AddImplicitValues( EnumTypeDefinition typeDefinition, IDictionary <object, EnumValueDefinition> values) { if (typeDefinition.Values.IsImplicitBinding()) { foreach (object value in Context.Inspector .GetEnumValues(typeDefinition.ClrType)) { EnumValueDefinition valueDefinition = EnumValueDescriptor.New(Context, value) .CreateDefinition(); if (!values.ContainsKey(valueDefinition.Value)) { values.Add(valueDefinition.Value, valueDefinition); } } } }