Exemple #1
0
        public IServiceContext Create(String contextName, ServiceContext parent, IBackgroundWorkerParamDelegate <IBeanContextFactory> registerPhaseDelegate, Type[] serviceModuleTypes)
        {
            ServiceContext context = new ServiceContext(GenerateUniqueContextName(contextName, null), parent);

            if (registerPhaseDelegate != null)
            {
                registerPhaseDelegate(this);
            }
            foreach (Type serviceModuleType in serviceModuleTypes)
            {
                RegisterBean(serviceModuleType);
            }
            IList <IBeanPreProcessor> preProcessors = parent.GetPreProcessors();

            if (preProcessors != null)
            {
                for (int a = 0, size = preProcessors.Count; a < size; a++)
                {
                    context.AddPreProcessor(preProcessors[a]);
                }
            }
            IList <IBeanPostProcessor> postProcessors = parent.GetPostProcessors();

            if (postProcessors != null)
            {
                for (int a = 0, size = postProcessors.Count; a < size; a++)
                {
                    context.AddPostProcessor(postProcessors[a]);
                }
            }
            beanContextInitializer.InitializeBeanContext(context, this);
            return(context);
        }