public static void DiscoverFromAssembly(Assembly asm = null)
        {
            if (asm == null)
            {
                asm = Assembly.GetCallingAssembly();
            }

            foreach (Type type in asm.GetTypes()
                     .Where(t => !(t.IsAbstract || t.IsGenericTypeDefinition || t.IsGenericType))
                     .Where(t => (typeof(IHardwireGenerator)).IsAssignableFrom(t)))
            {
                IHardwireGenerator g = (IHardwireGenerator)Activator.CreateInstance(type);
                Register(g);
            }
        }
		public static void Register(IHardwireGenerator g)
		{
			m_Generators[g.ManagedType] = g;
		}
 public static void Register(IHardwireGenerator g)
 {
     m_Generators[g.ManagedType] = g;
 }