public static EnumContractInfo TryCreate([CanBeNull] IEnum enumType)
            {
                if (enumType != null && enumType.HasAttributeInstance(PredefinedType.FLAGS_ATTRIBUTE_CLASS, false))
                {
                    var numericTypeInfo = CSharpNumericTypeInfo.TryCreate(enumType.GetUnderlyingType());
                    if (numericTypeInfo != null)
                    {
                        Debug.Assert(enumType.EnumMembers != null);

                        return(numericTypeInfo.TryCreateEnumFlags(enumType.EnumMembers));
                    }
                }

                return(null);
            }
            public static EnumContractInfo TryCreate(IEnum enumType)
            {
                if (enumType != null && enumType.HasAttributeInstance(PredefinedType.FLAGS_ATTRIBUTE_CLASS, false))
                {
                    var numericTypeInfo = CSharpNumericTypeInfo.TryCreate(enumType.GetUnderlyingType());
                    if (numericTypeInfo != null)
                    {
                        Debug.Assert(enumType.EnumMembers != null);

                        return numericTypeInfo.TryCreateEnumFlags(enumType.EnumMembers);
                    }
                }

                return null;
            }