public DIContainer(IDIConfiguration dIConfiguration) { if (Validate(dIConfiguration)) { container = dIConfiguration; stack = new ConcurrentStack <Type>(); } else { throw new Exception("IDConfiguration has wrong structure"); } }
private bool Validate(IDIConfiguration configuration) { if (configuration != null) { var dict = configuration.RegisteredTypesDictionary; foreach (var pair in dict) { foreach (var item in pair.Value) { if (item.GetImplementation.IsAbstract || item.GetImplementation.IsInterface || !item.GetImplementationInterface.IsAssignableFrom(item.GetImplementation)) { return(false); } } } return(true); } else { return(false); } }