internal static void RegisterPropertiesFromConfigurationObject(this PoorMansIoC container, INimbusConfiguration configuration) { configuration.RegisterWith(container); configuration .GetType() .GetProperties(BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance) .Where(p => typeof (ISetting).IsAssignableFrom(p.PropertyType)) .Select(p => p.GetValue(configuration)) .Do(o => container.Register(o)) .Done(); configuration .GetType() .GetProperties(BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance) .Where(p => typeof (INimbusConfiguration).IsAssignableFrom(p.PropertyType)) .Select(p => (INimbusConfiguration) p.GetValue(configuration)) .Do(container.RegisterPropertiesFromConfigurationObject) .Done(); }
internal static void RegisterPropertiesFromConfigurationObject(this PoorMansIoC container, INimbusConfiguration configuration) { configuration.RegisterWith(container); configuration .GetType() .GetProperties(BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance) .Where(p => typeof(ISetting).IsAssignableFrom(p.PropertyType)) .Select(p => p.GetValue(configuration)) .Do(o => container.Register(o)) .Done(); configuration .GetType() .GetProperties(BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance) .Where(p => typeof(INimbusConfiguration).IsAssignableFrom(p.PropertyType)) .Select(p => (INimbusConfiguration)p.GetValue(configuration)) .Do(container.RegisterPropertiesFromConfigurationObject) .Done(); }