public virtual IEnumerable <Type> ExplodeType(Type type)
 {
     if (TypesMapping.ContainsKey(type))
     {
         return(TypesMapping[type]);
     }
     return(new Type[] { type });
 }
        public MacroConfiguration()
        {
            this.MacroSelectorConfigsForItem = new HashSet <IMacroSelectorConfigForItem>();
            this.MacroSelectorConfigsForType = new Dictionary <Type, IMacroSelectorConfigForType>();

            TypesMapping.Add(typeof(System.Int32), new HashSet <Type>
            {
                typeof(short),
                typeof(ushort),
                typeof(int),
                typeof(uint),
                typeof(long),
                typeof(ulong),
                typeof(float),
                typeof(double)
            });
            TypesMapping.Add(typeof(System.String), new HashSet <Type>
            {
                typeof(string),
                typeof(bool)
            });
        }