public static void RegisterDependency(IRegisterDependency registerDependency) { var builder = GetContainerBuilder(); registerDependency.Register(builder); builder.Update(Container); }
private static void Discover(SimpleInjector.Container container) { Type assignable = typeof(IRegisterDependency); IEnumerable <Type> registerableTypes = AppDomain.CurrentDomain.GetAssemblies() .Where(x => x.FullName.StartsWith("OpenSheets.")).SelectMany(x => x.GetTypes()) .Where(x => x.IsClass && assignable.IsAssignableFrom(x)).ToList(); foreach (Type registerableType in registerableTypes) { IRegisterDependency registrar = Activator.CreateInstance(registerableType) as IRegisterDependency; registrar?.Register((service, iface) => { container.Register(service, iface, Lifestyle.Scoped); }); } }