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); } } }
public virtual void Startup(IRegisterProcessor registerProcessor) { registerProcessor .AddRegisterStep <GetAssembliesRegisterStep>() .AddRegisterStep <FilterAssembliesRegisterStep>() .AddRegisterStep <RegisterDependenciesRegisterStep>(); }
public void Execute(IRegisterProcessor registerProcessor) { foreach (var steps in registerProcessor.GetRegisterSteps()) { steps.ApplyStep(registerProcessor); } }
public void BuildContainer(IRegisterProcessor registerProcessor) { if (_ezzBootstrapper == null) { _ezzBootstrapper = new EzzBootstrapper(); } registerProcessor.AssemblyPrefix = _assembliesPrefix; _ezzBootstrapper.Startup(registerProcessor); _ezzBootstrapper.Execute(registerProcessor); }
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); }
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); }
public void ApplyStep(IRegisterProcessor registerProcessor) { registerProcessor.Asseblies = new List <Assembly>(); }
public override void Startup(IRegisterProcessor registerProcessor) { registerProcessor.AddRegisterStep <CustomRegisterStep>(); }