コード例 #1
0
        public void ApplyStep(IRegisterProcessor registerProcessor)
        {
            foreach (var item in registerProcessor.Asseblies)
            {
                var typesToRegister = item.GetLoadableClassesTypes()
                                      .Where(type => !type.GetInterfaces().Contains(typeof(ITypeRegister)));

                foreach (var type in typesToRegister)
                {
                    var typeInterface = type.GetInterface("I" + type.Name);
                    if (typeInterface != null)
                    {
                        registerProcessor.Container.RegisterType(typeInterface, type);
                    }
                }

                var types = item.GetLoadableClassesTypes()
                            .Where(mytype => mytype.GetInterfaces()
                                   .Contains(typeof(ITypeRegister)));

                foreach (var type in types)
                {
                    var instance = (ITypeRegister)Activator.CreateInstance(type);
                    instance.RegisterDependencies(registerProcessor.Container);
                }
            }
        }
コード例 #2
0
 public virtual void Startup(IRegisterProcessor registerProcessor)
 {
     registerProcessor
     .AddRegisterStep <GetAssembliesRegisterStep>()
     .AddRegisterStep <FilterAssembliesRegisterStep>()
     .AddRegisterStep <RegisterDependenciesRegisterStep>();
 }
コード例 #3
0
 public void Execute(IRegisterProcessor registerProcessor)
 {
     foreach (var steps in registerProcessor.GetRegisterSteps())
     {
         steps.ApplyStep(registerProcessor);
     }
 }
コード例 #4
0
        public void BuildContainer(IRegisterProcessor registerProcessor)
        {
            if (_ezzBootstrapper == null)
            {
                _ezzBootstrapper = new EzzBootstrapper();
            }

            registerProcessor.AssemblyPrefix = _assembliesPrefix;

            _ezzBootstrapper.Startup(registerProcessor);
            _ezzBootstrapper.Execute(registerProcessor);
        }
コード例 #5
0
        public void ApplyStep(IRegisterProcessor registerProcessor)
        {
            if (string.IsNullOrEmpty(registerProcessor.AssemblyPrefix))
            {
                return;
            }

            var filteredList =
                registerProcessor.Asseblies
                .Where(assembly =>
                       assembly.GetName().Name.StartsWith(registerProcessor.AssemblyPrefix));

            registerProcessor.Asseblies = new List <Assembly>(filteredList);
        }
コード例 #6
0
        public void ApplyStep(IRegisterProcessor registerProcessor)
        {
            var assemblyPath = GetApplicationPath(AppDomain.CurrentDomain);
            var pathes       = Directory.GetFiles(assemblyPath, "*.dll");
            var assemblyList = new List <Assembly>();

            foreach (var path in pathes)
            {
                var assembly = Assembly.LoadFrom(path);
                assemblyList.Add(assembly);
            }

            assemblyList.Add(Assembly.GetEntryAssembly());
            registerProcessor.Asseblies = new List <Assembly>(assemblyList);
        }
コード例 #7
0
 public void ApplyStep(IRegisterProcessor registerProcessor)
 {
     registerProcessor.Asseblies = new List <Assembly>();
 }
コード例 #8
0
 public override void Startup(IRegisterProcessor registerProcessor)
 {
     registerProcessor.AddRegisterStep <CustomRegisterStep>();
 }