/// <summary> /// Gets a instance of postprocessor /// </summary> /// <param name="postProcessorName">Postprocessor name</param> /// <returns>Instance of postprocessor</returns> public IPostProcessor GetPostProcessorInstance(string postProcessorName) { IPostProcessor postProcessor; lock (_postProcessorsPoolSynchronizer) { if (_postProcessorsPool.ContainsKey(postProcessorName)) { postProcessor = _postProcessorsPool[postProcessorName]; } else { if (postProcessorName == Constants.PostProcessorName.NullPostProcessor) { postProcessor = new NullPostProcessor(); } else { PostProcessorRegistration postProcessorRegistration = _assetConfig.PostProcessors[postProcessorName]; if (postProcessorRegistration == null) { throw new PostProcessorNotFoundException( string.Format(Strings.Configuration_PostProcessorNotRegistered, OutputCodeType, postProcessorName)); } string postProcessorFullTypeName = postProcessorRegistration.Type; postProcessor = Utils.CreateInstanceByFullTypeName <IPostProcessor>(postProcessorFullTypeName); postProcessor.UseInDebugMode = postProcessorRegistration.UseInDebugMode; } _postProcessorsPool.Add(postProcessorName, postProcessor); } } return(postProcessor); }
/// <summary> /// Gets a instance of postprocessor /// </summary> /// <param name="postProcessorName">Postprocessor name</param> /// <returns>Instance of postprocessor</returns> public IPostProcessor GetPostProcessorInstance(string postProcessorName) { IPostProcessor postProcessor; lock (_postProcessorsPoolSynchronizer) { if (_postProcessorsPool.ContainsKey(postProcessorName)) { postProcessor = _postProcessorsPool[postProcessorName]; } else { if (postProcessorName == Constants.PostProcessorName.NullPostProcessor) { postProcessor = new NullPostProcessor(); } else { PostProcessorRegistration postProcessorRegistration = _assetConfig.PostProcessors[postProcessorName]; if (postProcessorRegistration == null) { throw new PostProcessorNotFoundException( string.Format(Strings.Configuration_PostProcessorNotRegistered, OutputCodeType, postProcessorName)); } string postProcessorFullTypeName = postProcessorRegistration.Type; postProcessor = Utils.CreateInstanceByFullTypeName<IPostProcessor>(postProcessorFullTypeName); postProcessor.UseInDebugMode = postProcessorRegistration.UseInDebugMode; } _postProcessorsPool.Add(postProcessorName, postProcessor); } } return postProcessor; }