Пример #1
0
        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);
                });
            }
        }