/// <summary> /// Loads the object definitions from fluent configurations, build the object definition and load it into the spring object registry. /// </summary> /// <param name="listableObjectFactory">The listable object factory.</param> public void LoadObjectDefinitions(IConfigurableListableObjectFactory listableObjectFactory) { var definitionService = new ObjectDefinitionService(_objectDefinitionFactory, listableObjectFactory); foreach (IRegistrableObject registrableObject in _springObjectConfigurations .OfType <IRegistrableObject>() .Select(configurationContainer => (configurationContainer))) { InitialiseConventions(registrableObject); IObjectDefinition objectDefinition = registrableObject.GetObjectDefinition(definitionService); listableObjectFactory.RegisterObjectDefinition(registrableObject.Identifier, objectDefinition); if (FluentStaticConfiguration.RegisterImplementedInterfaces) { foreach (Type @interface in objectDefinition.ObjectType.GetInterfaces()) { if (!listableObjectFactory.ContainsObjectDefinition(@interface.FullName)) { listableObjectFactory.RegisterObjectDefinition(@interface.FullName, objectDefinition); } } } } }