Ejemplo n.º 1
0
 private static bool TryResolvedEnumName(
     BidirectionalDictionary <string, string> map,
     string enumText,
     out string resolvedEnumName)
 {
     if (map.TryGetBySecond(enumText, out resolvedEnumName))
     {
         return(true);
     }
     resolvedEnumName = (string)null;
     return(false);
 }
Ejemplo n.º 2
0
        private static BidirectionalDictionary <string, string> InitializeEnumType(
            Type type)
        {
            BidirectionalDictionary <string, string> bidirectionalDictionary =
                new BidirectionalDictionary <string, string>((IEqualityComparer <string>)StringComparer.Ordinal,
                                                             (IEqualityComparer <string>)StringComparer.Ordinal);

            foreach (FieldInfo field in type.GetFields(BindingFlags.Static | BindingFlags.Public))
            {
                string name1 = field.Name;
                string name2 = field.Name;
                string first;
                if (bidirectionalDictionary.TryGetBySecond(name2, out first))
                {
                    throw new InvalidOperationException(
                              "Enum name '{0}' already exists on enum '{1}'.".FormatWith((IFormatProvider)CultureInfo.InvariantCulture,
                                                                                         (object)name2, (object)type.Name));
                }
                bidirectionalDictionary.Set(name1, name2);
            }

            return(bidirectionalDictionary);
        }