public void RegisterComponent(Type componentType) { if (ComponentUtil.IsComponent(componentType) || ComponentUtil.IsConfiguration(componentType)) { RegisterInterfaceImpl(componentType); RegisterInheritanceImpl(componentType); RegisterFactoryMethods(componentType); } else { throw new NotSupportedException("All component types must have a Component derived attribute!"); } }